我有一个没有错误跟踪就崩溃的应用程序。如果我调试,我可以看到正在发生的事情的一部分,但不能找出哪个对象正在“僵尸化”。

有人知道如何在Xcode 4中启用NSZombie吗?


当前回答

环境变量现在是“方案”的一部分。

编辑方案并打开僵尸模式:

在“产品”菜单中选择“方案”>“编辑方案…”。 去“Run Foo”。app”阶段在左边面板,而“Arguments”选项卡在右边。 将NSZombieEnabled添加到“环境变量”部分,并将值设置为YES,就像你在Xcode 3中所做的那样。


在Xcode 4.1及以上版本中,在“Run”阶段的“Diagnostics”选项卡上也有一个复选框来“Enable Zombie Objects”。


Xcode 6.4:

其他回答

从Xcode 3.2.5和Snow Leopard (Mac OS X 10.6)开始,你可以通过僵尸工具运行你的代码:这允许你在时间轴上看到特定的对象及其保留计数。

进入产品-方案-编辑方案-参数-环境变量设置NSZombieEnabled = YES

在XCode 4.0:在仪器中检测NSZombie,选择模拟器作为你的目标(设备上不能检测NSZomboe)。运行Instruments (CMD+I)并选择“Zombies”跟踪模板。享受。

我在排除EXC_BAD_ACCESS故障时遇到了同样的问题,并且很难找到Xcode 4.2 (iOS5 SDK的最新版本)的设置。苹果一直在移动东西,设置也不再是以前的样子了。

幸运的是,我找到了它,它适用于设备,而不仅仅是模拟器。你需要在Xcode中打开Product菜单,选择Edit scheme,然后选择Diagnostics选项卡。这里有“启用僵尸对象”。一旦选择和运行调试器将指向你的双释放对象!享受吧!

简而言之

Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects

在Xcode 4.5.2 goto Product -> Edit Scheme ->和在Diagnostics选项卡下选中Objective C和Enable Zombie Objects之间的复选框,然后单击OK