我们如何在ARC中明确调用垃圾收集器?还有一种方法可以决定何时在ARC中释放内存?

Par*_*att 3 memory-leaks memory-management ios ios5 automatic-ref-counting

我是一名iPhone开发人员.我在我的应用程序中使用ARC.我正在分配对象,一旦它的使用结束,我给它分配"nil".为了释放内存,还有什么我需要做的吗?

还有办法,我们可以在ARC中明确调用垃圾收集器吗?还有一种方法可以决定何时在ARC中释放内存?

jus*_*tin 8

ARC不是垃圾收集器 - 将其视为手动引用计数管理,编译器代表您添加引用计数操作.

您可以做的一件好事是创建一个自动释放池.因为编译器添加了retain,release和autorelease消息 - 所以对象最终会出现在自动释放池中.考虑:

@autoreleasepool {
  ..create several temporary objects...
} // << now the autorelease pool is popped, and delayed release messages are sent
Run Code Online (Sandbox Code Playgroud)

创建自动释放池非常便宜,可以真正降低内存消耗并确保及时返回对象的资源.