Cuando necesito una matriz para uso temporal, lo que es la diferencia entre estos:Autorelease frente a liberar
1:
NSMutableArray *stuff = [[NSMutableArray alloc] init];
// use the array
[stuff release];
2:
NSMutableArray *stuff = [NSMutableArray array];
// use the array
3:
NSMutableArray *stuff = [[[NSMutableArray alloc] init] autorelease];
// use the array
Prefiero el número 2, ya que es más corto. ¿Hay alguna buena razón para usar el número 1 o 3?
Gracias! Buen punto sobre la versión inmediata de la memoria en el número 1. – keronsen
En el iPhone, encontrará que la mayoría de las personas usan el número 1 porque la memoria se devuelve al motor de ejecución más rápido. De hecho, Apple recomienda evitar la liberación automática tanto como sea posible (en el iPhone). – JeremyP
Buena respuesta, guardar para el último bit. Apostaría a que la diferencia entre crear una nueva matriz en cada pasada y eliminar todos los objetos es inconmensurable y, muy probablemente, eliminar todos los objetos será trivialmente más lento. En cualquier caso, no optimice hasta que tenga un problema de rendimiento cuantificado. – bbum