Se non si utilizza proprietà (dove self.property = nil rilascerà anche un oggetto) allora si deve sempre seguire un rilascio dal codice che imposta il riferimento a zero, come profilassi:
[view release]; view = nil;
Il motivo è che evita la possibilità che un riferimento possa essere utilizzato non valido. È raro e difficile essere successo, ma può accadere.
Questo è ancora più importante in viewDidUnload, se stai liberando IBOutlet - questo è uno scenario più realistico in cui un riferimento potrebbe andare male a causa degli avvisi di memoria che scaricano una vista, e poi qualche altro codice nella vista che prova a fare uso di un riferimento prima che la vista venga ricaricata.
Fondamentalmente è solo una buona pratica e ti farà risparmiare un crash ad un certo punto se prendi l'abitudine di farlo.
fonte
2009-09-22 16:57:02
quindi l'utilizzo del numero 3 all'interno di viewDidLoad non rilascerà la memoria di un oggetto alloc? – bbullis21
No, usando 3) non rilascerà mai memoria, a meno che tu non sia in una raccolta di dati obsoleti su obj-C su Mac OS X. – PeyloW
Anche fare self.bar = nil può causare una perdita di memoria. Se la proprietà è definita come @retain, funzionerà come previsto; se lo si definisce come @copy, si ha una perdita di memoria. – AlBlue