NSAutoreleasePool可以两次或多次排水吗?

时间:2012-05-13 19:42:18

标签: cocoa nsautoreleasepool

在我正在阅读的书中,它谈到强迫NSAutoreleasePool消失。这是否意味着创建一个本地NSAutoreleasePool然后将其耗尽,而不是耗尽已存在的那个?也就是说,我不能两次或多次消耗NSAutoreleasePool吗?

1 个答案:

答案 0 :(得分:2)

不,你不能多次排出自动释放池。

  

是否意味着创建一个本地NSAutoreleasePool,然后将其耗尽

是。要么创建一个新池并将其排干,要么(甚至更好)使用@autoreleasepool

  

我们不能两次或多次排出NSAutoreleasePool?

正确。 The documentation for drain州:

  

在引用计数环境中,此方法的行为与发布相同。由于无法保留自动释放池(请参阅retain),因此会导致接收器被解除分配。

由于自动释放池在第一次调用drain后被取消分配,因此在此之后调用任何方法永远无效,drain包含在内。