Как добавить 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 для дополнительных комментариев, представляющих интерес для тех, кто разрабатывает и отлаживает программу.