[pool release]和[pool drain]有什么区别?

S.J*_*Lim 1 objective-c

可能重复:
发送-release或-drain到Autorelease Pool有什么区别?

我总是想知道[池发布]和[池排水]之间的区别..

当我们在IOS中创建基于视图的应用程序时,请使用[pool release].

当我们在MAX OS X中创建命令行工具时,使用[pool drain].

为什么要用不同的方式?

omz*_*omz 7

文档:

在垃圾收集环境中,不需要自动释放池.但是,您可以编写一个框架,该框架旨在在垃圾收集和引用计数环境中工作.在这种情况下,您可以使用自动释放池向收集器提示该集合可能是合适的.在垃圾收集环境中,如果需要,向池中发送排泄消息会触发垃圾回收; 然而,释放是一种无操作.在参考计数环境中,排水与释放具有相同的效果.因此,通常应使用排水而不是释放.


Fly*_*ver 6

除非您在OSX上使用垃圾收集,否则没有区别.在没有GC的iOS和OSX上完全相同.

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSAutoreleasePool_Class/Reference/Reference.html