2010-08-29 4 views
6

In conclusione, ho lavorato su un'app e sembra che se inserisco uno UIAlert in viewDidLoad, viene chiamato due volte (da un metodo delegato di UIImagePickerController). Se lo metto in viewDidAppear, viene chiamato una volta.Differenza tra viewDidAppear, viewDidLoad in iPhone/iOS?

Ho esaminato la documentazione ma mi confonde.

+0

Potresti postare del codice? – rano

+0

hai provato a impostare un punto di interruzione e controllare lo stack delle chiamate? – Mark

risposta

8

Un oggetto UIView può essere caricato in memoria e rilasciato più volte senza mai essere aggiunto allo stack di visualizzazione e visualizzato sul display.

La mia ipotesi è che tu abbia 2 riferimenti a questa vista (forse uno in un file di pennino?), Quindi viene caricato, quindi rilasciato quando il secondo riferimento viene caricato e assegnato alla stessa proprietà, quindi solo quest'ultimo ottiene aggiunto allo stack di visualizzazione. Puoi vederlo stampando (NSLog) il valore intero di self ("% ld", (long int) self) nei metodi viewDidLoad e viewDidAppear.