我想为我的iPhone应用启用NSZombies。
我在线阅读了几篇文章,但我仍然不确定具体的程序。
我知道我必须设置环境变量,我已经完成了:
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
答案 0 :(得分:34)
您是否正确设置了环境变量?分步指南是
您不需要#import NSDebug.h
答案 1 :(得分:10)
您不必包含NSDebug.h或导入任何特殊框架以使用NSZombies。基本上,在您的环境变量中打开它们,然后,如果您尝试向dealloc'd对象发送消息,那么您将在控制台中看到一些内容,如下所示:
2009-02-10 21:17:08.546 MyApp[16926:20b] *** -[CFString _cfTypeID]: message sent to deallocated instance 0x4babc0
答案 2 :(得分:3)
-1到Apple。调试版本应该使用开箱即用的完整工具运行(可以选择退出)。另请参阅http://www.cocoadev.com/index.pl?NSZombieEnabled以获取正在开发和调试程序的人员感兴趣的其他内容。