autoreleasepool什么时候释放

个人觉得autoreleasepool的释放分两种情况。

一个是在runloop中隐式创建的autoreleasepool,每个接受autorelease消息的对象,都会在runloop结束时释放。

下面这张图解释的比较容易理解:


autoreleasepool什么时候释放_第1张图片

二是自定义的自动释放池

有两种自定义的方法:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init] 这种方法只能在MRC中使用,什么时候释放需要你自己管理。可以调用 [pool drain]方法进行释放。

    @autoreleasepool {}这种方法可以用在MRC和ARC中,它比NSAutoreleasePool更高效。这种情况在大括号结束释放。



你可能感兴趣的:(ios)