保留AutoReleasePool中的对象计数

时间:2015-02-05 09:21:00

标签: objective-c nsautoreleasepool

我有一种情况需要在自动发布池中添加每个新对象。此操作将被称为每秒60次。这样做,保留对象的计数将继续递增。从某种意义上说,autoreleasepool内容不会释放。但是当执行某些事件(鼠标,键盘)时,autoreleasepool会释放其内容对象。 有人知道这个问题背后的原因吗?

1 个答案:

答案 0 :(得分:0)

是的,只有在事件周期结束后才会调用autoreleasepool。在主运行循环中管理和触发一个接一个事件之后的事件。当事件不在运行循环中时,它的理想。因此,当事件周期在现有主运行循环池中结束时,自动释放调用。因此,当您触发某些事件(如鼠标,键盘)时,您的自动释放调用,这意味着您的主runloop结束当前事件周期并启动鼠标和键盘的新事件周期,并且在启动新事件周期之前运行自动释放池以清除所有对象在游泳池里。

浏览RunLoopManagement docCreatingThreads