AutoreleasePool 是用来管理对象引用计数的,在mrc情况下我们可以用NSAutoreleasePool alloc 来生成 ,在arc情况下可以用@auturelease「」来生成aureleasepool 那么自动释放池子中其实是可以嵌套自动释放池的, 并且自动释放池是通过一个双向链表来进行对象管理的,每一个autoreleasePage的默认大小是4096字节 , 如果超过了对应的字节那么要新的开辟对象。
@autorelease { = autorelelease Push.
} = autorelease pop
总的来说,一般我们自己生成的AutoreleasePool 在超过了作用域之后就会自己调用drain方法并且pop处对象 release 这个过程由我们自己来确定。
如果是系统自己的autoreleasePool 那么这里会由runloop进行管理,在适当的时机向AutoreleasePool中的对象发送release消息。
网友评论