你如何找出保留仪器中物体的内容?

时间:2012-08-24 16:56:21

标签: objective-c ios xcode memory-management instruments

我最近将我的iOS项目转换为ARC。其中一个视图控制器没有调用它的dealloc方法,并且没有按照仪器进行解除分类。

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

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

1 个答案:

答案 0 :(得分:27)

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

  • 打开您的Xcode项目
  • 选择可执行文件(如果需要)
  • cmd+i(个人资料)
  • 选择Le Wizard中的'Leaks'乐器(如果需要)
  • 按Return键开始分析
  • 锻炼你的应用
  • 按“乐器”中的“停止”
  • 确认已选择“分配”工具
  • 点击并按住名为“统计”
  • 的弹出按钮
  • 选择对象列表项
  • 在对象列表
  • 中的记录中找到您感兴趣的分配
  • 选择分配/对象
  • 点击该分配的表格视图单元格中地址右侧的“详细信息箭头”
  • 现在您可以看到与分配相关的所有事件(分配,免费,引用计数操作)
  • cmd+shift+e进行扩展详细信息
  • 浏览此列表中的事件,找到您寻求的不平衡。