【发布时间】:2013-06-24 18:12:26
【问题描述】:
我的问题说明了一切。有可能吗?这很奇怪,我不知道去哪里看或做什么。一切都在模拟器中发布,当我使用调试模式在应用程序中运行时。我可以在我的 dealloc 方法中看到日志,并且一切正常。但是当我在发布模式下运行我的应用程序时。对象不被释放。
其他人有这个问题吗?
【问题讨论】:
标签: iphone ios objective-c
我的问题说明了一切。有可能吗?这很奇怪,我不知道去哪里看或做什么。一切都在模拟器中发布,当我使用调试模式在应用程序中运行时。我可以在我的 dealloc 方法中看到日志,并且一切正常。但是当我在发布模式下运行我的应用程序时。对象不被释放。
其他人有这个问题吗?
【问题讨论】:
标签: iphone ios objective-c
你会不会不小心让 Zombies 在发布模式下打开但在调试时关闭?通常所有诊断程序都已关闭以供发布,但它符合您的描述。
【讨论】:
据我了解,无论您是在调试还是发布模式下构建,ARC 都会以不同的时间自动发布对象。这是因为编译器的优化标志在调试中为-O0,在发布中为-O3 或-Os。
我记得在 WWDC '13 的一次演讲中听到一位 Apple 工程师谈论它(我将尝试找到会话名称),据我所知,这种行为将在 Xcode 构建的未来中得到改进ARC 在调试模式下的行为更像是在发布模式下。
我知道它没有多大帮助,但我对 ARC 实现不够熟悉,无法提供更多细节。
另请参阅How do you debug an issue with a release mode build in iOS?,以帮助在发布模式下调试您的代码。
【讨论】: