1

如果我是正确的,那么自动释放对象池的释放与运行循环有关。我几乎不知道“运行循环”是什么,但我的问题是,对象是否有可能被释放在到达方法结束之前?

4

1 回答 1

3

与大多数框架一样,Cocoa 有一个循环,该循环连续运行并调度事件以响应用户输入、系统事件等。您的大部分代码在此循环内执行以处理事件。这个循环就是运行循环

运行循环在到达循环结束时排出最外层的自动释放池。因此,您的自动释放对象保证在方法期间保持活动状态,因为在方法(和其他方法)完成之前运行循环不会结束。

如果您希望更快地声明自动释放的对象,例如,您有一个紧密的内部循环,它正在创建大量自动释放的对象,您可以设置自己的自动释放池并在每个内部循环结束时将它们排空。

于 2010-04-24T15:37:51.563 回答