Quando ho bisogno di un array per uso temporaneo, qual è la differenza tra questi:Autorelease vs rilasciare
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
Preferisco il numero 2, poiché è più corto. Ci sono dei buoni motivi per usare il numero 1 o 3?
Grazie! Un buon punto sull'immediato rilascio della memoria nel numero 1. – keronsen
Su iPhone, la maggior parte delle persone usa il numero 1 perché la memoria viene restituita al runtime prima. In effetti, Apple consiglia di evitare la possibilità di autorelease il più possibile (su iPhone). – JeremyP
Buona risposta, salvo per l'ultimo bit. Scommetto che la differenza tra la creazione di un nuovo array su ogni passaggio e la rimozione di tutti gli oggetti è incommensurabile e, molto probabilmente, la rimozione di tutti gli oggetti sarà banalmente lenta. In ogni caso, non ottimizzare fino a quando non si ha un problema di prestazioni quantificato. – bbum