как использовать NSZombieEnabled на инструменте Xcode 3.2.5

у меня есть проблема с управлением памятью, и я пытаюсь исправить это с помощью инструментального инструмента.

На основе отметить j видео на YouTube

об использовании NSZombieEnabled в инструменте, я стараюсь так делать. Проблема в том, что я никогда не нахожу флажок, чтобы активировать NSZombieEnabled в моем инструменте. В этом случае я использую xcode 3.2.5 и все еще на IOS 4.2.

Это снимок экрана с инструмента, на котором не отображается ни один флажок для активированного NSZombieEnabled:

Я делаю что-то неправильно?? Помоги мне, пожалуйста

Спасибо


person R. Dewi    schedule 20.04.2011    source источник


Ответы (3)


Попробуйте запустить приложение на симуляторе и посмотрите, есть ли у вас опция в инструментах. Вы можете обратиться к этому руководству, чтобы увидеть, как это делается в XCode 3.2, или вы можете обратиться принятый ответ в этой ветке для XCode 4.

person Vin    schedule 20.04.2011

Почему бы не установить новый xCode 4? Там вы можете легко установить EnvironmentVariables в схеме на вкладке Аргументы для отладки.

Чтобы проверить, действительно ли он установлен, я использую этот код...

if(
       getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled")
       ) {
        NSLog(@"--------------------------------------->NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!");
    }
person user387184    schedule 20.04.2011
comment
где угодно, я помещаю его где-то в начале, чтобы до того, как начнутся все мои другие выходные данные отладки, и я могу пропустить его там... - person user387184; 21.04.2011

Существует простой способ включить NSZombie, если вы имеете дело с XCode версии 4, выполнив следующий простой шаг:

Щелкните раскрывающийся список схемы с именем «Продукт», выберите -> изменить схему -> вкладка аргументов, а затем добавьте NSZombieEnabled в столбец «Переменные среды» и «ДА» в столбец значений... Теперь вы закончили с включением NSZombie для поиска ошибок в программе.

Когда вы запускаете свое приложение, вы получаете сообщение об ошибке, в котором приложение аварийно завершает работу, устанавливая для состояния NSZombie значение включено, но изначально перед включением NSZombie вам может быть трудно определить, что именно не так, например, сбой при автоматическом выпуске. пул, разрыв gdb в настоящее время с использованием Objective-C, ошибки BAD_ACCESS и т. д. Включив NSZombie, вы можете определить, в чем именно заключается проблема, например, неправильное освобождение и попытка повторного доступа или неправильное освобождение памяти и т. д. Ошибки могут быть следующего вида:

-[ExampleProgramViewController alertView:didDismissWithButtonIndex:]: message sent to deallocated instance 0x7068f70
person Eshwar Chaitanya    schedule 19.06.2012