(嵌套)自动释放池的范围是什么?

inf*_*oop 4 cocoa cocoa-touch memory-management objective-c autorelease

我正在for循环中创建一个自动释放池(在方法A中).在循环的每次迭代中,我都在调用另一种方法(方法B).方法B将自动释放的对象返回到方法A.如果我在方法A中的for循环中排空池,是否会释放从方法B发送的对象?

谢谢!

pix*_*x0r 8

是 - -autorelease每次发送对象时,都会将其添加到最高级别的自动释放池中.只要您不在方法B中创建任何新的自动释放池或在调用堆栈中向下创建任何新的自动释放池,方法A的池应该是最高级别的池.

  • 唯一的问题是线程 - 自动释放池堆栈是每线程的. (2认同)