【发布时间】:2012-12-15 18:54:03
【问题描述】:
我正在编写一个使用 ARC 的应用程序,目前似乎存在一些内存泄漏。谷歌搜索我发现了一些关于如何使用 Inspector 的提示。在那里我可以看到一些类的实例的大量分配,我还可以看到一些关于如何分配对象以及如何更改保留计数的调用堆栈。
但我似乎看不到完整的调用堆栈,所以我不知道最终谁拥有该对象。在我看来,这个所有者没有释放对象(或拥有可疑对象的对象)。
谁能给我一个提示来寻找分配对象的所有者?
还请注意,对象并未标记为“泄漏”,而是已分配。在我看来,随着不断分配新对象,这些对象似乎被泄露了。
对于如何最好地继续并找到可疑泄漏的任何进一步帮助表示感谢。
【问题讨论】:
-
与非 ARC 相同,arc 不改变所有者权限
-
回到手头的问题:你能告诉我们更多关于你的代码的信息吗?你在呼唤 CoreFoundation 对象吗?你能提供你认为有东西泄漏的线路吗?我认为示例代码在这里会有所帮助。
-
@Daij-Djan 回复您的评论“arc 不会改变所有权”。你当然是对的,但我可能会争辩说 ARC 实际将所有权正式化了一点(强制执行方法命名约定以指定所有权何时转移,何时不转移,即前缀
alloc、new的存在与否,copy,或mutableCopy。)
标签: ios memory automatic-ref-counting memory-leaks