个人觉得autoreleasepool的释放分两种情况。
一个是在runloop中隐式创建的autoreleasepool,每个接受autorelease消息的对象,都会在runloop结束时释放。
下面这张图解释的比较容易理解:
二是自定义的自动释放池
有两种自定义的方法:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init] 这种方法只能在MRC中使用,什么时候释放需要你自己管理。可以调用 [pool drain]方法进行释放。
@autoreleasepool {}这种方法可以用在MRC和ARC中,它比NSAutoreleasePool更高效。这种情况在大括号结束释放。