4

我在for循环中创建一个autorelease池(在方法A中)。在循环的每次迭代中,我调用另一个方法(方法B)。方法B向方法A返回一个自动释放对象。如果我在方法A中的for循环内耗尽了池,那么是否会释放从方法B发送的对象?(嵌套)自动释放池的范围是什么?

谢谢!

回答

8

是 - 任何时候发送对象-autorelease,它被添加到最高级别的自动释放池。只要你没有在方法B中创建任何新的自动释放池或者在调用堆栈下面创建新的自动释放池,方法A的池应该是最高级别的池。

+2

唯一的问题是线程 - autorelease池堆栈是每个线程。 – Chuck 2009-09-09 17:28:19