2011-10-14 10 views
9

Korzystanie ARC, mam deklarowaną własność następującą postać:Co spowodowałoby, że moja (silna) deklarowana własność nie byłaby za moimi plecami?

@property (nonatomic, strong) MyClass * instanceName; 

ja ustawić tę właściwość w trzech miejscach - i dodałem punkty przerwania do wszystkich trzech miejscach.

Mam odniesienie do tej właściwości w wielu miejscach.

Gdy przejdę przez mój kod, właściwość zostanie ustawiona i żadne z dwóch pozostałych miejsc, w których właściwość się nie ustawia, zostanie wywołane. (Zgodnie z oczekiwaniami).

Jednak w pewnym momencie wartość tej właściwości staje się zerowa.

Dodałem metodę dealloc do mojej klasy, z NSLogiem i punktem przerwania - ale nigdy nie zostanie on wywołany (więc to nie jest tak, że traktuje się jak słabe odniesienie do zerowania).

Jestem zaskoczony tym, dlaczego moja "silna" własność mogłaby nigdy nie zostać pozbawiona mojej przyczyny.

Każda rada byłaby doceniona.

Dzięki

Odpowiedz

9

Odpowiedź jest prosta, że ​​ powodując jej zrobić. Po prostu jeszcze nie wiesz jak.

W pewnym momencie po uzyskaniu dostępu do ivar, powinien pojawić się w oknie debugowania z "i" przed nim. Kliknij go prawym przyciskiem myszy i wybierz "Watch ..." Otrzymasz punkt przerwania za każdym razem, gdy pamięć zostanie zmodyfikowana.

+0

Dzięki ... masz rację. – Steve

Powiązane problemy