15

我最近将我的 iOS 项目转换为 ARC。其中一个视图控制器没有调用它的 dealloc 方法,也没有根据 Instruments 被释放。

我已经仔细检查了我的所有属性并将适当的属性设置为弱。我还确保将视图控制器作为委托的任何东西都在 viewWillDisappear 上取消设置,但视图仍然保留在内存中。

我是 Instruments 的新手:我怎么知道是什么保留了这种观点?

4

1 回答 1

27

好吧,如果您真的被卡住并且程序很复杂(或抽象,在 ARC 的情况下),您可以拿出大炮:

  • 打开你的 Xcode 项目
  • 选择可执行文件(如果需要)
  • cmd+i(简介)
  • 在 Le Wizard 中选择“泄漏”工具(如果需要)
  • 按 Return 开始分析
  • 锻炼你的应用
  • 在仪器中按“停止”
  • 验证选择了“分配”工具
  • 单击并按住名为“统计”的弹出按钮
  • 选择对象列表项
  • 在 Objects List 的记录中找到您感兴趣的分配
  • 选择该分配/对象
  • 单击该分配的表格视图单元格中地址右侧的“详细箭头”
  • 现在您可以看到与分配相关的所有事件(分配、空闲、引用计数操作)
  • 按下cmd+shift+e以获取详细信息
  • 浏览此列表中的事件,并找到您寻求的不平衡。
于 2012-08-24T17:50:25.773 回答