苹果是如何实现autoreleasepool的

autoreleasepool 以一个栈的形式实现,主要经过下列三个函数完成.

objc_autoreleasepoolPush
objc_autoreleasepoolPop
objc_autorelease
复制代码

看函数名就能够知道,对 autorelease 分别执行 push,和 pop 操做。销毁对象时执行release操做。

举例说明:咱们都知道用类方法建立的对象都是 Autorelease 的,那么一旦 Person 出了做用域,当在 Person 的 dealloc 方法中打上断点,咱们就能够看到这样的调用堆栈信息:

相关文章
相关标签/搜索