苹果官方文档的翻译
In a garbage collected environment, release is a no-op. NSAutoreleasePool therefore provides a drain method that in a reference-counted environment behaves the same as calling release, but which in a garbage collected environment triggers garbage collection (if the memory allocated since the last collection is greater than the current threshold). Typically, therefore, you should use drain rather than release to dispose of an autorelease pool.
在一个garbage collected(垃圾收集)环境里,release不做任何操作。 NSAutoreleasePool因此提供了一个 drain 方法,它在reference-counted(引用计数)环境中的行为和调用release一样, 但是在一个garbage collected(垃圾收集)环境中则触发garbage collection(垃圾收集)动作 (if the memory allocated since the last collection is greater than the current threshold)。 因此通常你应该使用drain而不是release去释放一个autorelease pool。