tendo a liberare la mia roba in -dealloc, e ora iPhone OS 3.0 ha introdotto questo metodo -viewDidUnload divertente, dove si dice:Cosa devo fare esattamente in viewDidUnload?
// rilasciare qualsiasi mantenuta subviews di vista principale. // per esempio. self.myOutlet = nullo;
Quindi -viewDidUnload sembra essere chiamato quando la vista del controller di visualizzazione è stata avviata dalla memoria. E se ho delle sottoview collegate alla vista principale del controller della vista, devo rilasciare quelle cose solo QUI, ma non anche in -dealloc?
Questo è confuso. Inoltre, cosa succede se -dealloc fa sì che la vista venga scaricata (rilasciata)? Poi di nuovo, chiamerà -viewDidUnload?
Mi rendo conto della differenza, che -viewDidUnload è solo per il caso in cui la vista stessa viene uccisa, ma il controller della vista rimane in memoria. E -dealloc è il caso in cui l'intera faccenda va nel cestino.
Forse qualcuno può chiarire la confusione.
Domanda simile: http://stackoverflow.com/questions/1158788/when-should-i-release-objects-in-voidviewdidunload-rather-than-in-dealloc –
viewDidUnload è obsoleto in iOS 6! – whyoz