iOS - autoreleasePool
2021-12-17 本文已影响0人
码代码的小马
是什么
NSAutoreleasePool:
An object that supports Cocoa’s reference-counted memory management system.
本质是一个1. 对象,可以管理cocoa 对象内存的引用计数
autorelease pool :
An autorelease pool stores objects that are sent a release message when the pool itself is drained.
autorelease pool 里存放一些对象, 当pool释放的时候,会给pool里的这些对象发送release消息
官方说明:
- autorelease pool是个对象
- 在池子释放时,对池中的对象发送release消息(只是引用技术-1,是否释放对象不确定)
- 系统在主线程的每次runloop开始时创建pool。runloop结束时销毁pool,从而释放
- 每个线程维护他自己的autoreleasePool对象堆栈,当线程终止时,它会自动清空所有与之关联的autorelease pools
objc_autoreleasePoolPush源码流程走向
未命名文件-4.png