苹果官方文档:The AppKit and UIKit frameworks automatically create a pool at the beginning of each event-loop iteration, such as a mouse down event or a tap, and drain it at the end. AppKit和UIKit框架在每个event-loop事件循环中创建一个pool,如鼠标按下事件或者一个手势,这个pool会在这个事件结束时释放掉。
即:当一个事件产生时(如鼠标事件、触摸屏事件、网络事件、定时器事件),系统会创建一个autorelease pool,系统会把本次事件处理中的autorelease对象放入到autorelease pool中,当本次事件处理结束时,系统会销毁这个autorelease pool,销毁这个autorelease pool时,会把池中对象的引用计数减一,如果有对象的引用计数为0时,则释放这个对象。当下一个事件到来时,系统会创建一个新的autorelease pool.
本文详细介绍了AppKit和UIKit框架中的自动释放池机制。当触发特定事件(如鼠标或触摸事件)时,系统会自动创建并管理自动释放池,用于跟踪和释放事件处理过程中产生的autorelease对象。每完成一次事件循环,系统将清理该池,从而实现内存的有效管理。
3529

被折叠的 条评论
为什么被折叠?



