iOS应用程序中的内存泄漏 - ARC

时间:2013-05-11 14:24:34

标签: iphone ios objective-c sdk instruments

我很难搞清楚我的应用漏洞在哪里。我已通过分配和快照对“仪器”分析应用程序进行了测试。这就是我得到的:

enter image description here

如您所见,分配正在增加。每当我在两个视图之间转换时它会增加,并具有淡入淡出效果。我应该查看以下哪些快照,以便在查看快照/快照时查找泄漏以及我应该关注哪种对象?

先谢谢你的帮助:)。

2 个答案:

答案 0 :(得分:4)

如果你不再对它进行任何引用,ARC只能解除分配内存。由于泄漏仪器没有指示任何“真正的”泄漏(在您无法访问的内存意义上),您可能会看到一个被遗弃的内存案例。您仍然持有对不再需要的对象的引用,因此它们不会被取消分配。

在基线之后检查哪个快照并不重要。尽管快照中的对象列表可能有点压倒性...但通常有助于将其过滤到您自己的类。您可以通过在右上角的搜索字段中键入您的类前缀来完成此操作。如果快照中没有显示任何类,则至少可以查找直接使用的类。

还要确保在分配工具的检查器窗格中启用“记录引用计数”选项。启用此功能后,可以单击快照中列出的对象旁边的小右箭头(不是类名,而是由其内存地址表示的对象),并查看该对象的完整历史记录。这样可以更容易地查看谁持有对它的引用。

希望这有帮助!

答案 1 :(得分:0)

使用'Analyze'选项构建代码;追踪并消除每一个问题。