¿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?

Respuestas a la pregunta(7)

Su respuesta a la pregunta