在iOS和ARC中如何找到哪个对象引用了另一个对象

9
我正在使用Xcode和iOS进行开发,有一个对象因为其他对象仍然引用它而没有被删除,但我无法弄清楚是哪个对象在引用它。使用Instruments时,我看到该对象的引用计数为1,但从我的代码中观察来看,它应该是0。
我已经运行了Instruments,它并未将其视为泄漏。
是否有一种方法可以在Instruments(或调试器)中找出仍然持有引用的对象?

你有找到帮助你调试的工具吗?我现在也遇到了同样的问题。 - momo
2个回答

0
也许你应该尝试将一些强引用替换为弱引用,看看它是否仍然有效?

0

我想在这种情况下我们可能无法提供太多帮助。也许您必须按照对象的预期生命周期进行操作。

您可以尝试为NSObject创建一个类别,在其中记录每个保留和释放操作。您还可以在这些方法中设置断点,以便在堆栈跟踪中查看它们被保留/释放的位置。


我认为在ARC下,retain和release方法不会被调用,至少不是传统的那种方式。 - Roger Gilbrat
在ARC下会调用objc_releaseobjc_retain - JustSid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接