我在内存管理方面遇到了一些问题,然后我尝试使用仪器工具修复它。
关于在仪器中使用 NSZombieEnabled,我尝试这样做。问题是我从来没有在我的仪器中找到一个复选框来设置 NSZombieEnabled 处于活动状态。在这种情况下,我使用 xcode 3.2.5 并且仍在 IOS 4.2 上。
这是仪器的屏幕截图,显示没有激活 NSZombieEnabled 的复选框:
难道我做错了什么??请帮帮我
谢谢你
我在内存管理方面遇到了一些问题,然后我尝试使用仪器工具修复它。
关于在仪器中使用 NSZombieEnabled,我尝试这样做。问题是我从来没有在我的仪器中找到一个复选框来设置 NSZombieEnabled 处于活动状态。在这种情况下,我使用 xcode 3.2.5 并且仍在 IOS 4.2 上。
这是仪器的屏幕截图,显示没有激活 NSZombieEnabled 的复选框:
难道我做错了什么??请帮帮我
谢谢你
为什么不安装新的 xCode 4?在那里,您可以在“调试参数”选项卡下的方案中轻松设置 EnvironmentVariables。
要检查它是否实际设置,我使用此代码...
if(
getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled")
) {
NSLog(@"--------------------------------------->NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!");
}
如果您通过执行以下简单步骤来处理 XCode 版本 4,则有一种启用 NSZombie 的简单方法:
请单击名为 Product 选择 -> 编辑方案 -> 参数选项卡的方案下拉栏,然后在 Environment Variables 列中添加 NSZombieEnabled 并在 value 列中添加 YES...现在您已完成启用 NSZombie 以查找程序中的错误。
当您运行您的应用程序时,您会收到一条错误消息,其中应用程序崩溃将 NSZombie 状态设置为启用,但最初在启用 NSZombie 之前,您可能会发现很难找出究竟是什么错误,例如自动释放池崩溃,gdb 中断当前使用目标-c,BAD_ACCESS 错误等...通过启用 NSZombie,您可以找到确切的问题,例如不正确的释放和尝试重新访问,或不正确的内存释放等。错误可能属于以下类型:
-[ExampleProgramViewController alertView:didDismissWithButtonIndex:]: message sent to deallocated instance 0x7068f70