每一个新的RunLoop都会隐式创建一个自动释放池。类似一个局部的垃圾回收,将部分垃圾对象集中释放。自动释放池的释放操作向池内所有对象发送release消息。
[pool release]和[pool drain]都可以释放对象,但[pool drain]在MacOS上可以引起垃圾回收操作,对系统兼容性更强,与普通对象release区分开。
autoreleasepool是基于多个AutoreleasePoolPage以双向链表组合起来的结构,存储于内存的栈上,遵循“先进后出”原则。
每一个新的RunLoop都会隐式创建一个自动释放池。类似一个局部的垃圾回收,将部分垃圾对象集中释放。自动释放池的释放操作向池内所有对象发送release消息。
[pool release]和[pool drain]都可以释放对象,但[pool drain]在MacOS上可以引起垃圾回收操作,对系统兼容性更强,与普通对象release区分开。
autoreleasepool是基于多个AutoreleasePoolPage以双向链表组合起来的结构,存储于内存的栈上,遵循“先进后出”原则。