我将一些旧代码移植到Objective-C ARC(自动引用计数),它看起来效果很好。当一个相当大的高级对象从我的导航堆栈中弹出时,它不会被释放,让我相信我有一个ARC隐藏在我身边的某个保留周期(或者至少很难跟踪)。清除这个潜在保留周期的最佳方法是什么和/或什么是确定ARC下内存泄漏原因的好方法?谢谢!
答案 0 :(得分:26)
我刚刚转换了一个较旧的应用程序来使用ARC。仪器没有泄漏,但分配继续增加。我发现通过查看我知道应该删除的内容的实时对象,我能够在没有发布的情况下追踪保留。以下是基本步骤:
答案 1 :(得分:16)
最好的方法通常是使用the Leaks instrument in the Instruments app。
来自WWDC 2011的新功能视频讨论了如何使用Instruments在ARC下查找保留周期,大约需要38分钟。
答案 2 :(得分:0)