我在内存管理方面遇到了一些问题,然后我试着用intrument工具来解决它。
基于mark j video on you tube
关于在intrument中使用NSZombieEnabled,我尝试这样做。问题是,我从未在仪器中找到将NSZombieEnabled设置为活动状态的复选框。在这种情况下,我使用Xcode3.2.5,仍然在IOS 4.2上。
这是仪器的屏幕截图,其中未显示任何NSZombieEnabled复选框激活:

我做错了什么吗??请帮帮我
谢谢
发布于 2011-04-20 14:26:06
尝试在模拟器上运行您的应用程序,看看是否在instruments中获得了该选项。你可以参考this教程来了解它是如何在XCode 3.2中完成的,或者你可以参考XCode 4的this线程中被接受的答案。
发布于 2011-04-20 14:09:15
为什么不安装新的xCode 4呢?在这里,您可以轻松地在“方案”中的“调试参数”选项卡中设置EnvironmentVariables。
为了检查它是否真的被设置,我使用这个代码...
if(
getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled")
) {
NSLog(@"--------------------------------------->NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!");
}发布于 2012-06-19 20:23:02
如果您正在处理XCode版本4,通过实现以下简单步骤,有一种启用NSZombie的简单方法:
请单击名为“产品”的方案下拉栏,选择“->”编辑方案“->参数”选项卡,然后在“环境变量”列中添加“NSZombieEnabled”,并在值“column...Now”中添加“是”。您已完成启用NSZombie以查找程序中的错误的操作。
当你运行你的应用程序时,你会收到一条错误消息,其中应用程序崩溃了,将NSZombie状态设置为启用了的,但最初在启用NSZombie之前,你可能会发现很难找出到底是什么问题,比如在自动释放池中崩溃,gdb break当前使用objective-c,BAD_ACCESS错误等。通过启用NSZombie,您可以找到问题的确切原因,例如不正确的释放和尝试重新访问,或者不正确的内存释放etc..The错误可能属于以下类型:
-[ExampleProgramViewController alertView:didDismissWithButtonIndex:]: message sent to deallocated instance 0x7068f70https://stackoverflow.com/questions/5725742
复制相似问题