2010-08-29 21 views
6

Najważniejsze jest to, że pracowałem nad aplikacją i wydaje mi się, że jeśli umieściłem UIAlert w viewDidLoad, zostanie ono wywołane dwukrotnie (z metody delegata UIImagePickerController). Jeśli wstawię go do viewDidAppear, zostanie on wywołany jeden raz.Różnica między viewDidAppear, viewDidLoad w iPhone/iOS?

Przeglądałem dokumentację, ale to mnie tylko myli.

+0

Czy możesz napisać jakiś kod? – rano

+0

Czy próbowałeś ustawić punkt przełomowy i sprawdzić stos połączeń? – Mark

Odpowiedz

8

Obiekt UIView może zostać wczytany do pamięci i zwolniony wiele razy bez dodawania go do stosu widoku i wyświetlania na ekranie.

Domyślam się, że masz 2 odniesienia do tego widoku (może jeden w pliku stalówka?), Więc jest ładowany, a następnie zwolniony, gdy druga referencja jest załadowany i przypisany do tej samej właściwości, a następnie tylko ten ostatni dostaje dodane do stosu widoków. Możesz to zobaczyć, drukując (NSLog) całkowitą wartość self ("% ld", (long int) self) w metodach viewDidLoad i viewDidAppear.