如何添加NSDebug.h并在iPhone SDK中使用NSZombie

Cor*_*oyd 15 iphone debugging cocoa cocoa-touch

我想为我的iPhone应用程序启用NSZombies.

我在线阅读了几篇文章,我仍然不确定具体的程序.

我知道我必须设置环境变量,我已经完成了:

NSZombieEnabled = YES
NSDebugEnabled = YES
NSDeallocateZombies = NO
Run Code Online (Sandbox Code Playgroud)

我想(我不确定),我必须导入NSDebug.h.当我在项目中检查Foundation Framework的标题时,没有NSDebug.h.

经过一些研究,我在iPhoneSimulator Foundation Framework中找到了它们.所以(我不确定这是否正确),我将iPhoneSimualtor Foundation Framework导入到我的项目中.我注意到文件STILL没有显示在项目窗口中,即使我可以在Finder中找到它.(这是正常行为吗?).

所以我打开了主要并添加:

#ifdef TARGET_IPHONE_SIMULATOR
#import <Foundation/NSDebug.h>
#endif
Run Code Online (Sandbox Code Playgroud)

我不确定这是否正确.在此之后我仍然无法让NSZombie工作(除非我误解了它应该做什么)我期待看到"NSZombie发送释放......"的日志.但我没有看到任何东西

我敢肯定,我只是没有做到这一点,一步一步的好一步将不胜感激.谢谢

另外值得注意的是,我也启用了:

NSMallocStacklLogging = YES
MallocStackLoggingNoCompact = YES
Run Code Online (Sandbox Code Playgroud)

Jan*_*les 34

您是否正确设置了环境变量?分步指南是

  1. 双击Xcode项目的Executables组中的可执行文件.
  2. 单击"参数"选项卡.
  3. 在"要在环境中设置的变量:"部分中,创建一个名为"NSZombieEnabled"的变量,并将其值设置为"YES".

您不需要#import NSDebug.h


Ben*_*ieb 10

您不必包含NSDebug.h或导入任何特殊框架以使用NSZombies.基本上,在您的环境变量中打开它们,然后,如果您尝试向dealloc'd对象发送消息,那么您将在控制台中看到一些内容,其中包括:

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