【问题标题】:Dealloc Not Called in ARC-Enabled Application在启用 ARC 的应用程序中未调用 Dealloc
【发布时间】:2014-08-14 14:08:23
【问题描述】:

所以我刚刚完成了在 iOS 7 设备上运行的 xCode 5.1.1 应用程序的编码(应用程序已启用 ARC)。一切都已完成,没有发生崩溃,但我想确保应用程序在提交审核之前没有问题。

我已经在我的每个视图控制器的 DEALLOC 方法中放置了日志语句,以确保它们被调用......永远不会调用它们中的任何一个!不确定这是否应该在启用 ARC 的应用程序中是这样的?此外,这让我很担心,因为当我运行应用程序并切换到“调试导航器”选项卡时,应用程序的内存使用量会继续增加,就好像视图控制器在它们被关闭或推送/模态序列发生后没有被释放一样。任何帮助或想法将不胜感激。

谢谢。

【问题讨论】:

  • 也许还有另一种我不知道的解决方法..如果是这样,请告诉我
  • 你很可能有引用循环阻止你的视图控制器被释放。使用 Instruments 的 Allocations 工具找出持有额外引用的内容。

标签: ios objective-c dealloc


【解决方案1】:

看起来你对你不知道的视图控制器有很强的引用。使用静态分析器警告您任何参考周期。一般来说,查看警告并修复它们。您可能会意外卡在 NSArray 中。检查所有持有这些视图控制器的变量,是否有任何存储在对象中,您可能必须将其更改为 nil?

【讨论】:

    猜你喜欢
    • 2012-03-02
    • 2014-01-13
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多