Как настроить NSZombieEnabled в Xcode 4?

Как настроить NSZombieEnabled и CFZombieLevel для моего исполняемого файла в Xcode 4?

7 Solutions collect form web for “Как настроить NSZombieEnabled в Xcode 4?”

В Xcode 4.x нажмите

R

(или нажмите « Menubar > « Product > « Scheme > « Edit Scheme )

выберите вкладку «Диагностика» и нажмите «Включить объекты зомби»:

Нажмите «Включить объекты зомби».

Это превращает выпущенные объекты в экземпляры NSZombie, которые печатают предупреждения консоли при повторном использовании. Это отладочная помощь, которая увеличивает использование памяти (ни один объект не выпущен), но улучшает отчет об ошибках.

Типичным случаем является то, что вы перевыпускаете объект и не знаете, какой из них:

  • С зомби: -[UITableView release]: message sent to deallocated instance
  • Без зомби: EXC_BAD_ACCESS

Этот параметр Xcode игнорируется при архивировании приложения для представления в App Store. Вам не нужно прикасаться к чему-либо перед тем, как отпустить свое приложение.

Нажатие ⌥⌘R совпадает с выбором «Продукт»> «Выполнить», удерживая нажатой клавишу «Alt».
Щелчок по флажку «Включить объекты зомби» аналогичен установке вручную «NSZombieEnabled = YES» в разделе «Переменные среды» вкладки «Аргументы».

Ответ Яно – это самый простой способ найти его. Другой способ: если вы нажмете на панель выпадающего меню схемы -> изменить схему -> вкладку параметров, а затем добавьте NSZombieEnabled в столбец переменных среды и YES в столбце значений …

Я считаю эту альтернативу более удобной:

  1. Нажмите кнопку «Выполнить выпадающую кнопку»,
  2. Из списка выберите Profile
  3. Программа «Инструменты» должна открыться там, где вы также можете выбрать Zombies
  4. Теперь вы можете взаимодействовать с вашим приложением и пытаться вызвать ошибку
  5. Как только произойдет ошибка, вы должны получить намек на то, когда ваш объект был выпущен и, следовательно, освобожден.

Zombies

Как только обнаружен зомби, вы получите аккуратный «Zombie Stack», который показывает вам, когда объект был задан, и где он был сохранен или выпущен:

 Event Type RefCt Responsible Caller Malloc 1 -[MyViewController loadData:] Retain 2 -[MyDataManager initWithBaseURL:] Release 1 -[MyDataManager initWithBaseURL:] Release 0 -[MyViewController loadData:] Zombie -1 -[MyService prepareURLReuqest] 

Преимущества по сравнению с использованием диагностической вкладки схем Xcode :

  1. Если вы забыли снять флажок на вкладке диагностики, в памяти не будет выделено никаких объектов.

  2. Вы получаете более подробный стек, который показывает вам, в каких методах ваш коррумпированный объект был выделен / выпущен или сохранен.

В Xcode 4.2

  • Название проекта / Изменить схему / Диагностика /
  • Включить объекты Zombie Objects
  • Вы закончили

On In Xcode 7

<

или выберите « Edit Scheme из Product > « Scheme

выберите « Enable Zombie Objects на вкладке « Diagnostics »

Значок зодиака xcode 7

В качестве альтернативы, если вы предпочитаете файлы .xcconfig вы можете прочитать эту статью https://therealbnut.wordpress.com/2012/01/01/setting-xcode-4-0-environment-variables-from-a-script/

Cocoa предлагает отличную функцию, которая значительно улучшает ваши возможности для отладки таких ситуаций. Это переменная среды, которая называется NSZombieEnabled, смотрите это видео, которое объясняет настройку NSZombieEnabled в объективе C

В Xcode> 4.3:

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

Удачи !!!

  • Исключение, вызванное генерируемыми NSOrderedSet
  • Interesting Posts

    Параметры Asus UEFI / BIOS – Как загрузить с DVD?

    Как подключить больше жестких дисков к моей аппаратной RAID-карте?

    Как сделать фильм на DVD моих фотографий?

    Как я могу запустить несколько сеансов экрана автоматически?

    Практика использования батареи

    Конечный процесс и конечное дерево процессов

    Как открыть консольное приложение с заданным размером окна?

    Может ли новый MacBook / MacBook Pro поддерживать двухсторонние мониторы

    Удаление символической ссылки папки Ubuntu удаляет содержимое целевой папки, когда выполняется через OSX & Samba

    Могу ли я повторно активировать клавиши курсора для изменения ссылки на ячейку в формуле?

    Разрешения на доступ к файлам IIS AppPoolIdentity и файловой системы

    Linux. Посмотрите папку и запустите команду, когда файл существует.

    Показать Анимированный GIF

    Положить изображение в подпись thunderbird

    Excel CSV import обрабатывает цитируемые строки чисел как числовые значения, а не строки

    Давайте будем гением компьютера.