查找使用ARC对对象进行垃圾回收的时间

时间:2012-09-13 15:33:16

标签: objective-c asynchronous memory-leaks automatic-ref-counting

我目前的客观c程序中存在大量内存泄漏,我正试图找到并修复它(显然!)我遇到的问题是我使用ARC创建了程序,所以我可以我只是自己实现发布或类似的东西来查看对象何时或是否被释放。

更糟糕的是,我不确定我是否完全理解分配工具。我发现太多的内存被分配,然后没有被可变字符串释放,我相信它是在一个单独的线程中创建的,但我不知道如何解决这个问题!我以为我已经销毁了对包含它的对象的所有引用,但显然不是?

找到确切泄漏位置的最佳方法是什么?或者,如果有人有修复,要解决它?

2 个答案:

答案 0 :(得分:0)

您可以观看名为“学习乐器”的WWDC 2012会话(会话409)。视频为here

答案 1 :(得分:0)

您可以通过在dealloc实施中记录消息来查找对象何时消失。但是,如果没有取消分配,你就不会在那里开始。

您说references to the object that contains it以及separate thread。如果您使用块来编写在单独的线程中执行的代码,请注意您可能通过引用块中的self创建的保留圈。

编辑:

如果您不知道我在说什么,请查看Retain cycle on `self` with blocksblocks, self, retain cycles