Mam UIViewController, który jest pchany na kontroler kontenera, a następnie wyskoczył, a przy użyciu przydziału instrumentu, widzę, że kontroler widoku jest następnie niszczony. Jednak punkt przerwania dealloc kontrolera nigdy nie zostanie osiągnięty. Czy ktoś wie, dlaczego nie nazywa się dealloc? Czy ARC może zniszczyć obiekt bez wywoływania dealloc?Dealloc nie jest wywoływany na aplikacji ARC
Co więcej, wyłączyłem NSZombies (niektórzy twierdzą, że może spowodować, że debugowanie nie rozpocznie się).
Edit:
dealloc nie robi wiele, po prostu drukuje na konsoli, a to nigdy nie jest wywoływana:
- (void)dealloc { NSLog(@"Deallocating..."); }
nie mogę pisać kontroler-to pojemnik jest zastrzeżony i zbyt skomplikowany. Dealloc jest nazywany konsekwentnie na niektórych kontrolerach, a nie na innych. Jeśli uda mi się znaleźć czas, postaram się opublikować uproszczoną wersję, która powiela problem.
Czy istnieje sposób sprawdzenia, czy NSZombies jest wyłączony?
Edit2
jestem delegowania zrzut ekranu z instrumentów; Wydaje mi się, że prawidłowo rozdziela.
To powinien być nazywany zaczyna, nawet w ARC. Nie możesz uwzględnić [super dealera], ale ARC doda to za Ciebie. Może udostępnić kod tej klasy? – picciano
Czy istnieją metody w metodzie dealloc? – zaph
Powinieneś opublikować kod '- (void) dealloc {}'. – NJones