如何准确找到iPhone项目中内存泄漏的位置

时间:2012-05-08 06:12:53

标签: iphone ios ios4 iphone-sdk-3.0

在Xcode内存中开发应用程序时正在发生泄漏。当我在扩展详细信息视图中检查它们时,它们显示的是与实现无关的不同方法。如何准确找出泄漏的对象以及泄漏内存的位置。

启用ARC时,我们必须处理内存泄漏吗?

2 个答案:

答案 0 :(得分:11)

是的,即使使用ARC也存在内存泄漏。 ARC不是垃圾收集器,它只在编译时为您插入,在关键位置保留,释放和自动释放。因此,虽然它确实有助于开发人员,但您应该知道内存泄漏仍然存在(例如循环引用)。您可以先使用静态分析器来解决它向您显示的任何问题。然后,您可以转到工具并选择泄漏

答案 1 :(得分:11)

即使发生ARC内存泄漏,它也只是在编译期间插入释放和自动释放。

1。您必须使用XCode中的Build and analyze检查是否存在泄漏,shift+command+b您应该清除这些问题。

2. 之后,您可以使用个人资料选项command+i开始使用这些乐器。这将指出泄漏的位置。

此链接也可以帮助您http://soulwithmobiletechnology.blogspot.in/2011/04/how-to-check-memory-leaks-in-xcode-4.html

编辑:添加了一些屏幕截图,希望能说清楚。

在选择leaks之后进行性能分析时,选择call tree选项并选中hide system librariesinvert call treeshow obj-c only框,如下图所示。

双击下面的符号名称后,您将获得泄漏的行。 enter image description here

你会得到这样的东西。

enter image description here