4

我在for循環中創建一個autorelease池(在方法A中)。在循環的每次迭代中,我調用另一個方法(方法B)。方法B向方法A返回一個自動釋放對象。如果我在方法A中的for循環內耗盡了池,那麼是否會釋放從方法B發送的對象?(嵌套)自動釋放池的範圍是什麼?

謝謝!

回答

8

是 - 任何時候發送對象-autorelease,它被添加到最高級別的自動釋放池。只要你沒有在方法B中創建任何新的自動釋放池或者在調用堆棧下面創建新的自動釋放池,方法A的池應該是最高級別的池。

+2

唯一的問題是線程 - autorelease池堆棧是每個線程。 – Chuck 2009-09-09 17:28:19