Использовать авто-релиз перед добавлением объектов в коллекцию?
Я просматривал вопросы, задаваемые в 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 пролить свет на это?