2010-08-08 52 views

回答

0

在一定的清晰度增加这个答案:

我刚跑过一个测试。我在启动时将此代码插入到我的应用程序中:

if(getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled")) 
    assert(NO); 

然后根据下图配置XCode。

NSZombieEnabled in xcode

我发起调试器中的设备上我的应用程序。正如预期的那样,它以断言失败而告终。然后,我断开调试器并在设备上正常启动应用程序。没有崩溃。因此,如果您在XCode中以下面的方式配置NSZombieEnabled,那么您似乎可以提交给应用商店。

+0

谢谢你的回答!我也学会了NSAutoreleaseFreedObjectCheckEnabled选项。 – tokentoken 2011-08-04 00:16:14

6

取决于您如何设置它。可以在运行时切换。

如果你刚才在Xcode环境中设置了它,那么 - 不 - 它将不会在Xcode之外的设备上运行时被设置。

(注意:启用了僵尸检测使用的内存因为它有效地使没有对象被释放,只是标记为“应该已经释放”)

+0

谢谢你的回答。 是的,我把它设置为Xcode,就像这个截图一样。 http://www.tomwhitson.co.uk/blog/2009/04/debugging-with-nszombiesenabled/ – tokentoken 2010-08-08 23:31:09

+0

你也可以阅读这篇文章:http://stackoverflow.com/questions/1622079/break- on-exc-bad-access-in-xcode/1622091#1622091 – iwasrobbed 2010-08-09 00:08:09

+0

你从哪里得到那个信息包? – beOn 2010-09-09 20:36:42

相关问题