Quelle est la différence entre copy
et mutableCopy
lorsqu'il est utilisé sur un NSArray
ou un NSMutableArray
?Comment copy et mutableCopy s'appliquent à NSArray et NSMutableArray?
C'est ce que je comprends. est-ce correct?
// ** 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];
// Both must be released later
// ** 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];
// Both must be released later
Vous avez une erreur dans votre édition; sûr que ce soit une faute de frappe ou un malentendu. Dans le premier bloc de code, la variable myArray_imuMuta affectée à mutableCopy est * mutable *, non immuable comme l'indique votre commentaire. –
Merci, c'était une erreur, je me suis trompé avec Xcode en disant "Avertissement NSArray peut ne pas répondre à ajouter -addObject/-removeObjectAtIndex .Je vais changer myArray_imuMuta à NSMutableArray – fuzzygoat
@JamesHarnett - s'il vous plaît arrêter les modifications au nom de" Compatibilité ARC "- voir [cette méta-post] (http://meta.stackoverflow.com/questions/268309/is-it-okay-to-convert-non-arc-objective-c-answers-to-arc) pour – Krease