Задача C Сохранение / Отладка Отладки - PullRequest
2 голосов
/ 03 марта 2010

Я довольно новичок в разработке iPhone и сталкиваюсь с проблемами с управлением памятью.

Я создал приложение Multiview с такой структурой:

Main Menu - Preferences - Subview with UIPicker Item.

Навигация осуществляется с помощью контроллера навигации (представление Push / Pop в / из стека).

Все отлично работает. Но если я переключаюсь примерно 20 раз с Preferences на Subview с помощью UIPicker, программа вылетает.

Иногда я получаю сообщение, подобное этому:

objc[5817]: FREED(id): message release sent to freed object=0x3d53390

Проблема в том, что я не знаю, где проблема.

Есть ли какая-либо возможность получить некоторую расширенную информацию, чтобы увидеть, какой объект потерпел крах?

Ответы [ 2 ]

1 голос
/ 03 марта 2010

Возможно, вы захотите опубликовать некоторый код, чтобы узнать, может ли кто-нибудь узнать, где ваша ошибка, но чтобы ответить на ваш вопрос:

Вы можете включить Зомби

Что вы делаете, так это включаете зомби в вашем приложении, и это делает его таким, что когда объект освобождается, вместо того, чтобы освобождать память, он сохраняется с типом объекта, которым он был. Затем приложение аварийно завершает работу при повторном прикосновении к этой памяти, сообщая, где оно было впервые затронуто, когда его не должно было быть, и тип объекта.

Будьте уверены, когда закончите, чтобы отключить зомби, так как он потребляет так много памяти.

0 голосов
/ 03 марта 2010

В моем случае я сохраняю объект при инициализации и освобождаю, когда он мне больше не нужен.

Если вам нужно больше деталей, профессиональное решение, взгляните на Руководство по программированию управления памятью для какао

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...