自动释放的对象是否总能在整个方法中存活?

时间:2010-04-24 15:27:00

标签: cocoa autorelease

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

1 个答案:

答案 0 :(得分:3)

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

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

如果您希望更快地声明自动释放的对象,例如你有一个紧密的内循环,它创建了许多自动释放的对象,你可以设置自己的自动释放池,并在每个内循环的末尾排出它们。