Domande e risposte Sessione 3 gestione della memoria iOS e best practice

Nella sessione di domande e risposte di questa settimana, Mark Hammonds risponde alle domande lasciate sul post di Axit Patel "Lavorare con la classe UITableView, parte 2". In particolare, questa sessione di domande e risposte illustra le tecniche di gestione della memoria e la capacità di "autorelease" degli oggetti. Mark parla anche delle migliori pratiche quando si utilizza viewDidLoad e altri suggerimenti relativi a NSString.

Domande con risposta:

Tutorial: iPhone SDK: utilizzo della classe UITableView - Parte 2

Domanda:
1) Per riempire le immaginiArray crei un paio di UIImageViews, ma non le rilascerai più tardi. Va bene o ti sei dimenticato di farlo?
2) Perché crei comunque gli array fittizi? Non potresti semplicemente dire self.sitesArray = [[NSArray alloc] initWithObjects: @ "...", ..., nil]; ?
O c'è una ragione per farlo come hai fatto tu?

A partire dal: Dan

Errata:

  • A 06:40 nel video dichiaro che usando @ "Hello World!" restituirà una stringa rilasciata automaticamente. Questo non è corretto. È invece una stringa allocata staticamente che viene mantenuta per tutto il ciclo di vita del programma, come indicato nella sezione commenti qui sotto.
  • A 07:31 Premetto che% @ è lo specificatore di formato per una NSString. Tecnicamente, questo è corretto, ma è importante notare che% @ è anche usato per stampare informazioni anche su altri oggetti Cocoa-Touch. Un oggetto formattato con% @ utilizzerà il metodo di istanza -descrizione originariamente ereditato da NSObject per visualizzare l'output personalizzato per quell'oggetto. NSString implementa questo per visualizzare il valore di stringa, gli altri oggetti si comportano in modi diversi.