Kopya & mutableCopy?
Arasındaki fark nedir "" ve""? mutableCopy kopyala
EDİT_001:
Benim orijinal sonrası bir karmaşa, bir anlayış eksikliği kısmen iyi ve kısmen benim pilot hatası biraz da bağlı biraz. Burada daha iyi nasıl ""mutableCopy" iş." & kopyalama izah etmek için bir çabadır
// ** NSArray **
NSArray *myArray_imu = [NSArray arrayWithObjects:@"abc", @"def", nil];
// No copy, increments retain count, result is immutable
NSArray *myArray_imuCopy = [myArray_imu copy];
// Copys object, result is mutable
NSArray *myArray_imuMuta = [myArray_imu mutableCopy];
[myArray_imuCopy release];
[myArray_imuMuta release];
.
// ** NSMutableArray **
NSMutableArray *myArray_mut = [NSMutableArray arrayWithObjects:@"A", @"B", nil];
// Copys object, result is immutable
NSMutableArray *myArray_mutCopy = [myArray_mut copy];
// Copys object, result is mutable
NSMutableArray *myArray_mutMuta = [myArray_mut mutableCopy];
[myArray_mutCopy release];
[myArray_mutMuta release];
EDİT_002:
- mutableCopy her zaman değiştirilebilir bir sonuç verir.
- kopya her zaman değişmez bir sonuç verir.
tüm cevaplar, yorumlar için ... çok takdir ederim.
gary
CEVAP
copy
mutableCopy
farklı protokoller tanımlanmıştır (NSCopying
NSMutableCopying
, sırasıyla), ve NSArray
Her ikisi de uygundur. mutableCopy
NSArray
(NSMutableArray
) için tanımlanan ve ilk olarak sabit bir dizi değiştirilebilir bir kopyasını yapmak için izin verir:
// create an immutable array
NSArray *arr = [NSArray arrayWithObjects: @"one", @"two", @"three", nil ];
// create a mutable copy, and mutate it
NSMutableArray *mut = [arr mutableCopy];
[mut removeObject: @"one"];
Özet:
mutableCopy
sonucu değişken, orijinal türü ne olursa olsun güvenebilirsiniz. Diziler halinde, sonuçNSMutableArray
bir olmalıdır.- sanaolamaz
copy
sonucu değişken olmaya bağlıdır!copy
ıngNSMutableArray
olabilirorijinal sınıfının beri* *19, bir dönüş, amacopy
NSArray
ıng rasgele bir örnek olmaz.
Düzenleme:yeniden okumak Mark Bessey cevabı ışığında orijinal kodu. Dizinizi bir kopyasını oluşturduğunuzda, tabii ki hala orijinal kopyası ne olursa olsun değiştirebilirsiniz. copy
mutableCopy
vs etkiler miyeni bir diziolur kesilebilir.
Edit 2:(Yanlış) varsayımı sabit NSMutableArray -copy
NSMutableArray
bir dönecekti.
() kopya vs fabrika yöntemi yapıcı vs?...
Çalışma Kopya Kilitli...
Neden kopya yapıcı özel değişkenleri e...
ARK altında NSString bir özelliği güçl...
GİT kopya tarihi koruma dosyası...