autoreleasepool 以一个队列数组的形式实现,主要通过下列三个函数完成.
* objc_autoreleasepoolPush
* objc_autoreleasepoolPop
* objc_autorelease
看函数名就可以知道,对 autorelease 分别执行 push,和 pop 操作。销毁对象时执行release操作。
举例说明:我们都知道用类方法创建的对象都是 Autorelease 的,那么一旦 Person 出了作用域,当在 Person 的 dealloc 方法中打上断点,我们就可以看到这样的调用堆栈信息:
网友评论