¿Usar autorelease antes de agregar objetos a una colección?
He estado revisando las preguntas formuladas en StackOverflow, pero hay tantas sobre la administración de memoria en Objective-C que no pude encontrar la respuesta que estaba buscando.
La pregunta es si está bien (y se recomienda) llamar al autorelease antes de agregar un objeto recién creado a una colección (como NSMutableArray). O debería soltarlo explícitamente después de agregarlo. (Sé que NSMutableArray retendrá el objeto)
Esto ilustra mi pregunta:
Escenario A (autorelease):
- (void) add {
// array is an instance of NSMutableArray
MyClass *obj = [[[MyClass alloc] init] autorelease];
[array addObject:obj];
}
Escenario B (lanzamiento explícito):
- (void) add {
// array is an instance of NSMutableArray
MyClass *obj = [[MyClass alloc] init];
[array addObject:obj];
[obj release];
}
Supongo que ambos son correctos, pero no estoy seguro, y no sé cuál es la forma preferida.
¿Pueden los gurús de Objective-C arrojar algo de luz sobre esto?