Użyj autorelease przed dodaniem obiektów do kolekcji?

Przeglądałem pytania zadane w StackOverflow, ale w Objective-C jest tak dużo zarządzania pamięcią, że nie mogłem znaleźć odpowiedzi, której szukałem.

Pytanie brzmi, czy jest w porządku (i zalecane) wywołanie autorelease przed dodaniem nowo utworzonego obiektu do kolekcji (np. NSMutableArray)? Czy powinienem wydać go wyraźnie po dodaniu. (Wiem, że NSMutableArray zachowa obiekt)

To ilustruje moje pytanie:

Scenariusz A (autorelease):

- (void) add {
   // array is an instance of NSMutableArray

   MyClass *obj = [[[MyClass alloc] init] autorelease];

   [array addObject:obj];
}

Scenariusz B (jawne wydanie):

- (void) add {
   // array is an instance of NSMutableArray

   MyClass *obj = [[MyClass alloc] init];

   [array addObject:obj];

   [obj release];
}

Zakładam, że oba są poprawne, ale nie jestem pewien i na pewno nie wiem, jaki jest preferowany sposób.

Czy guru Objective-C mogą rzucić na to trochę światła?

questionAnswers(7)

yourAnswerToTheQuestion