在我正在读的书中,它谈到了强迫NSAutoreleasePool
流失。这是否意味着创建一个本地NSAutoreleasePool
然后排空它,而不是排空已经存在的那个? 也就是说,我可以不两次或多次排出NSAutoreleasePool
吗?
不可以,不能多次清空自动释放池。
这是否意味着创建一个本地 NSAutoreleasePool 然后将其耗尽
是的。 要么制作一个新池并将其排干,要么(甚至更好)使用 @autoreleasepool
.
我们不能两次或多次耗尽 NSAutoRelease 池?
正确。 drain
的文档指出:
在引用计数的环境中,此方法的行为与发布相同。由于无法保留自动释放池(请参阅保留),因此这会导致接收器被解除分配。
由于自动释放池在第一次调用drain
后被解除分配,因此之后对其调用任何方法(drain
包括)永远不会有效。