美文网首页
iOS面试题:苹果是如何实现autoreleasepool的?

iOS面试题:苹果是如何实现autoreleasepool的?

作者: sunnyxg0812 | 来源:发表于2020-02-14 19:04 被阅读0次

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

* objc_autoreleasepoolPush
* objc_autoreleasepoolPop
* objc_autorelease

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

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

image

相关文章

网友评论

      本文标题:iOS面试题:苹果是如何实现autoreleasepool的?

      本文链接:https://www.haomeiwen.com/subject/oafrfhtx.html