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

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

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

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

NSZombieEnabled = YES
NSDebugEnabled = YES
NSDeallocateZombies = NO

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

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

Итак, я открыл главный и добавил:

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

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

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

Также следует отметить, что я также включил:

NSMallocStacklLogging = YES
MallocStackLoggingNoCompact = YES

3 ответа

Решение

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

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

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

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

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

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

Другие вопросы по тегам