【问题标题】:ios objects are released in Debug mode but not being released in Release modeios 对象在 Debug 模式下被释放,但在 Release 模式下不被释放
【发布时间】:2013-06-24 18:12:26
【问题描述】:

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

其他人有这个问题吗?

【问题讨论】:

    标签: iphone ios objective-c


    【解决方案1】:

    你会不会不小心让 Zombies 在发布模式下打开但在调试时关闭?通常所有诊断程序都已关闭以供发布,但它符合您的描述。

    【讨论】:

      【解决方案2】:

      据我了解,无论您是在调试还是发布模式下构建,ARC 都会以不同的时间自动发布对象。这是因为编译器的优化标志在调试中为-O0,在发布中为-O3-Os

      我记得在 WWDC '13 的一次演讲中听到一位 Apple 工程师谈论它(我将尝试找到会话名称),据我所知,这种行为将在 Xcode 构建的未来中得到改进ARC 在调试模式下的行为更像是在发布模式下。

      我知道它没有多大帮助,但我对 ARC 实现不够熟悉,无法提供更多细节。

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

      【讨论】:

      • 但到目前为止我看到的唯一情况是相反的:在发布模式(有优化)下,对象比在调试模式下(没有优化)更早发布。
      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2022-06-20
      • 2023-03-10
      • 2011-04-08
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      相关资源
      最近更新 更多