ARC和记忆问题

时间:2013-11-19 05:01:42

标签: ios memory-leaks nsoperation

在我的项目中启用了ARC,我在这个站点的帖子中发现Cocoa在主线程上为你创建了一个自动释放池,但是在后台线程上没有为你做任何事情。如果你要在没有使用NSOperation的情况下将某些东西放到后台线程上,你会想要将该线程包装在@autoreleasepool ARC memory leaks中我修改了我的代码,仍然有内存泄漏问题。请帮忙。              enter image description here

根据你的说法Bryan Chen我编辑了enter image description here

现在在这里遇到问题  enter image description here

enter image description here

enter image description here

下一次修改 enter image description here

2 个答案:

答案 0 :(得分:0)

@autoreleasepool放入您的第一个dispatch_async(jsonParsingQueue)

答案 1 :(得分:0)

请注意,当您dispatch_async一个块到主队列时,该块将在主线程上执行,因此已经有一个自动释放池。因此,现有代码中的自动释放池在不需要的地方是不必要的,并且应该移动它以便它将被分派的块的全部内容包含在jsonParsingQueue中。

编辑:实际上,所有 GCD队列执行会自动拥有自动释放池,因此尽管创建一个额外的池以更好地控制内存使用会很有用,但它如果不这样做,不应该导致泄漏。我想你可能还有另一个问题。

请参阅此处以供参考:Do you need to create an NSAutoreleasePool within a block in GCD?