Использовать авто-релиз перед добавлением объектов в коллекцию?

Я просматривал вопросы, задаваемые в StackOverflow, но в Objective-C так много об управлении памятью, что я не смог найти ответ, который искал.

Вопрос в том, можно ли (и рекомендуется) вызывать autorelease перед добавлением вновь созданного объекта в коллекцию (например, NSMutableArray)? Или я должен выпустить это явно после добавления. (Я знаю, NSMutableArray сохранит объект)

Это иллюстрирует мой вопрос:

Scenario A (autorelease):

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

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

   [array addObject:obj];
}

Scenario B (explicit release):

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

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

   [array addObject:obj];

   [obj release];
}

Я предполагаю, что оба верны, но я не уверен, и я уверен, что не знаю, каков предпочтительный способ.

Могут ли гуру Objective-C пролить свет на это?

Ответы на вопрос(7)

Ваш ответ на вопрос