ios对象在调试模式下释放,但未在发布模式下释放

时间:2013-06-27 09:44:09

标签: iphone ios objective-c

我的问题说明了一切。它甚至可能吗?这很奇怪,我不知道在哪里看或做什么。一切都在模拟器中发布,当我使用调试模式在app中运行时。我可以在dealloc方法中查看日志,一切正常。但是当我在发布模式下运行我的应用程序时。对象未释放。

其他人有这个问题吗?

2 个答案:

答案 0 :(得分:1)

根据我的理解,当您在调试或发布模式下构建时,ARC会自动释放具有不同时序的对象。这是因为编译器的优化标志在调试中为-O0,在发布时为-O3-Os

我记得听过一位苹果工程师在WWDC '13会谈中谈到它(我会试着找到会话名称),而且从我记忆中来看,这种行为将会在期货Xcode构建中得到改善。调试模式下的ARC表现得与发布模式下的情况非常相似。

我知道这没什么用,但我对ARC的实施不够熟悉,无法提供更多细节。

另请参阅How do you debug an issue with a release mode build in iOS?以帮助在发布模式下调试代码。

答案 1 :(得分:0)

你是否不小心让Zombies开启了发布模式但是关闭了调试?通常情况下,所有诊断程序都已关闭以供发布,但它符合您的描述。