Lors de l'ajout d'objets à un NSArray à l'aide de "initWithObjects", quelqu'un peut-il confirmer que les éléments sont conservés? Je suis assez sûr qu'ils sont, mais ne peut pas trouver cela mentionné nulle part en ce qui concerne initWithObjects?NSArray initWithObjects: conserve-t-il des objets?
// CREATE DRINKS
Coffee *drink1 = [[Coffee alloc] initWithName:@"Flat White"];
Coffee *drink2 = [[Coffee alloc] initWithName:@"Cappucino"];
Coffee *drink3 = [[Coffee alloc] initWithName:@"Latte"];
Coffee *drink4 = [[Coffee alloc] initWithName:@"Mocha"];
Coffee *drink5 = [[Coffee alloc] initWithName:@"Hot Chocolate"];
// SET ARRAY
NSArray *tempArray = [[NSArray alloc] initWithObjects:drink_1, drink_2, drink_3, drink_4, drink_5, nil];
[self setCoffeeList:tempArray];
// CLEAN UP
[drink_1 release];
[drink_2 release];
[drink_3 release];
[drink_4 release];
[drink_5 release];
[tempArray release];
[super viewDidLoad];
acclamations Gary
obtenir cette description à partir de la documentation Xcode, les docs pour initWithObjects: count: (NSSet) mention retain, mais pas NSArray. Je suppose que Chuck souligne sa pratique standard et n'est pas explicitement mentionné partout. Merci beaucoup ... – fuzzygoat
@fuzzygoat: La documentation ne devrait pas avoir besoin de le spécifier à nouveau pour chaque méthode. La règle générique de gestion de la mémoire est assez simple et courte; tout argument d'objet qui doit être conservé après la sortie de la méthode doit être conservé, sauf s'il s'agit d'un délégué. La documentation d'Apple ne documente généralement que les quelques exceptions à cette règle (observateurs «NSNotificationCenter» et délégués «CALayer»). – PeyloW
Merci, très apprécié. – fuzzygoat