Как добавить NSDebug.h и использовать NSZombie в iPhone SDK

Я хочу включить NSZombies для своего iPhone-приложения.

Я прочитал несколько статей в Интернете, и я до сих пор не знаю точную процедуру.

Я знаю, что мне нужно установить переменные окружения, которые я сделал:

NSZombieEnabled = YES
NSDebugEnabled = YES
NSDeallocateZombies = NO

Я думаю (я не уверен), мне нужно импортировать NSDebug.h. Когда я проверяю заголовки Foundation Framework в моем проекте, нет NSDebug.h.

После некоторых исследований я нашел их в iPhoneSimulator Foundation Framework. Итак, (и я не уверен, что это правильно), я импортировал в iPhone проект iPhoneSimualtor Foundation Framework. Я заметил, что файл STILL не отображается в окне проекта, хотя я могу найти его в Finder. (Это обычное поведение?).

Итак, я открыл main и добавил:

#ifdef TARGET_IPHONE_SIMULATOR
#import <Foundation/NSDebug.h>
#endif

Я не уверен, правильно ли это. После этого я все еще не могу заставить NSZombie работать (если я не понял, что он должен делать) Я ожидаю увидеть журнал "NSZombie отправил релиз..." или что-то в этом роде. Но я ничего не вижу

Я уверен, что я просто не делаю этого правильно, хороший шаг за шагом будет оценен. Благодаря

Также обратите внимание, что я также включил:

NSMallocStacklLogging = YES
MallocStackLoggingNoCompact = YES

Ответ 1

Вам не нужно включать NSDebug.h или импортировать какие-либо специальные фреймворки для использования NSZombies. В основном, включите их в своих переменных окружения, а затем, если вы попытаетесь отправить объект dealloc'd, THEN вы увидите что-то в своей консоли по строкам:

2009-02-10 21:17:08.546 MyApp[16926:20b] *** -[CFString _cfTypeID]: message sent to deallocated instance 0x4babc0

Ответ 2

Правильно ли вы задаете переменную окружения? Пошаговое руководство -

  • Дважды щелкните исполняемый файл в группе "Исполняемые файлы" вашего проекта Xcode.
  • Перейдите на вкладку "Аргументы".
  • В разделе "Переменные, подлежащие установке в среде:", создайте переменную под названием "NSZombieEnabled" и установите ее значение "YES".

Вам не нужно #import NSDebug.h

Ответ 3

-1 для Apple. Отладочные сборки должны запускаться с полным набором инструментов из коробки (с возможностью отказа). Также см. http://www.cocoadev.com/index.pl?NSZombieEnabled для дополнительных комментариев, представляющих интерес для тех, кто разрабатывает и отлаживает программу.