/ / Objective C Retain / Release Debugging - obiektyw-c, zarządzanie pamięcią

Cel C Zachowaj / Uwolnij Debugowanie - cel-c, zarządzanie pamięcią

Jestem całkiem nowy w iPhone Development i mam kłopoty z zarządzaniem pamięcią.

Zbudowałem aplikację Multiview o tej strukturze:

Menu główne - Preferencje - Podgląd z elementem UIPicker.

Nawigacja odbywa się za pomocą kontrolera nawigacji (widok Push / Pop do / ze stosu).

Wszystko dziala. Ale jeśli przełączę się około 20 razy z Preferencji na Subview z UIPicker, program ulegnie awarii.

Czasami dostaję taki komunikat:

objc [5817]: FREED (id): wydanie komunikatu wysłane do uwolnionego obiektu = 0x3d53390

Problem polega na tym, że nie wiem, gdzie jest problem.

Czy istnieje jakaś możliwość uzyskania rozszerzonych informacji, aby zobaczyć, który obiekt spowodował awarię?

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz opublikować kod, aby sprawdzić, czy ktoś może wykryć, gdzie znajduje się Twój błąd, ale odpowiedzieć na twoje pytanie:

Możesz włączyć Zombie

Co możesz zrobić, to włączyć zombie w swoimDzięki temu, gdy obiekt zostanie zwolniony, zamiast uwolnić pamięć, zostaje on zapisany z typem obiektu, jakim był. Następnie aplikacja ulega awarii, gdy ta pamięć zostanie ponownie dotknięta, informując, gdzie została dotknięta po raz pierwszy, kiedy nie powinna być, i jaki to był obiekt.

Upewnij się, kiedy skończysz, aby wyłączyć zombie, ponieważ zużywa tak dużo pamięci.


0 dla odpowiedzi nr 2

W moim przypadku zachowuję obiekt przy inicjalizacji i zwalniam, gdy go już nie potrzebuję.

JEŚLI potrzebujesz więcej szczegółów, profesjonalne rozwiązanie, spójrz na Podręcznik programowania zarządzania pamięcią dla kakao