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

我已经在线阅读了几篇文章,但仍不确定确切的过程。

我知道我必须设置完成的环境变量:

NSZombieEnabled = YES
NSDebugEnabled = YES
NSDeallocateZombies = NO


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

经过研究,我在iPhoneSimulator Foundation Framework中找到了它们。
因此(我不确定这是否正确),我将iPhoneSimualtor Foundation Framework导入了我的项目。
我注意到即使我可以在Finder中找到文件STILL,它也不会出现在项目窗口中(这是正常现象吗?)。

所以我打开main并添加:

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


我不确定这是否正确。此后,我仍然无法使NSZombie工作(除非我误解了它应该做什么)
我希望看到“ NSZombie发送了一个发行...”的日志。但是我什么都没看到

我敢肯定,我只是没有正确地做这件事,一步一步的好,不胜感激。
谢谢

还要注意的是,我还启用了:

NSMallocStacklLogging = YES
MallocStackLoggingNoCompact = YES

最佳答案

您不必包括NSDebug.h或导入任何特殊框架即可使用NSZombies。基本上,在环境变量中打开'em,然后,如果您尝试向已分配对象发送消息,则您将在控制台中看到以下内容:

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

10-08 06:43