【发布时间】:2012-05-16 15:11:45
【问题描述】:
在 Xcode 中开发应用时,内存泄漏正在发生。当我在扩展详细视图中检查它们时,它们显示了与实现无关的不同方法。如何准确找出正在泄漏的对象以及泄漏内存的位置。
启用 ARC 后,我们是否必须处理内存泄漏?
【问题讨论】:
标签: iphone ios ios4 iphone-sdk-3.0
在 Xcode 中开发应用时,内存泄漏正在发生。当我在扩展详细视图中检查它们时,它们显示了与实现无关的不同方法。如何准确找出正在泄漏的对象以及泄漏内存的位置。
启用 ARC 后,我们是否必须处理内存泄漏?
【问题讨论】:
标签: iphone ios ios4 iphone-sdk-3.0
即使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 libraries、invert call tree 和show obj-c only 复选框,如下图所示。
双击下面的符号名称后,您将看到泄漏的行。
你会得到这样的东西。
【讨论】:
是的,即使 使用 ARC 也存在内存泄漏。 ARC 不是垃圾收集器,它只在编译时为您插入、保留、释放和自动释放关键位置。因此,尽管它确实对开发人员有所帮助,但您应该知道内存泄漏仍然存在(例如循环引用)。您可以先使用 Static Analyzer 并纠正它显示给您的任何问题。然后您可以转到仪器并选择泄漏。
【讨论】: