Use autorelease antes de adicionar objetos a uma coleção?
Eu tenho procurado através das perguntas feitas no StackOverflow, mas há tantas sobre o gerenciamento de memória no Objective-C que eu não consegui encontrar a resposta que estava procurando.
A questão é se está tudo bem (e recomendado) chamar autorelease antes de adicionar um objeto recém-criado a uma coleção (como NSMutableArray)? Ou devo liberá-lo explicitamente depois de adicioná-lo. (Eu sei NSMutableArray willl reter o objeto)
Isso ilustra minha pergunta:
Cenário A (autorelease):
- (void) add {
// array is an instance of NSMutableArray
MyClass *obj = [[[MyClass alloc] init] autorelease];
[array addObject:obj];
}
Cenário B (lançamento explícito):
- (void) add {
// array is an instance of NSMutableArray
MyClass *obj = [[MyClass alloc] init];
[array addObject:obj];
[obj release];
}
Eu suponho que ambos estão corretos, mas não tenho certeza, e com certeza não sei qual é o modo preferido.
Os gurus do Objective-C podem lançar alguma luz sobre isso?