Как использовать NSZombieEnabled на Intrument Xcode 3.2.5 - PullRequest
0 голосов
/ 20 апреля 2011

У меня возникла проблема с управлением памятью, и затем я пытаюсь исправить ее с помощью инструмента Intrument.

Основываясь на отметить j видео на вашей трубе

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

Это скриншот из инструмента, который не показывает ни одного флажка для активированного NSZombieEnabled: instrument screenshot

я делаючто-то не так??помогите мне пожалуйста

спасибо

Ответы [ 3 ]

0 голосов
/ 20 апреля 2011

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

0 голосов
/ 19 июня 2012

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

Пожалуйста, нажмите на раскрывающуюся панель схемы под названием «Выбор продукта» -> «Изменить схему» -> вкладка «Аргументы», а затем добавьте NSZombieEnabled в столбце «Переменные среды» и «YES» в столбце «Значение» ... в программе.

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

-[ExampleProgramViewController alertView:didDismissWithButtonIndex:]: message sent to deallocated instance 0x7068f70
0 голосов
/ 20 апреля 2011

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

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

if(
       getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled")
       ) {
        NSLog(@"--------------------------------------->NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!");
    }
...