【问题标题】:What is difference between [pool release] and [pool drain]? [duplicate][池释放]和[池排水]有什么区别? [复制]
【发布时间】:2011-10-31 15:37:30
【问题描述】:

可能重复:
What's the difference between sending -release or -drain to an Autorelease Pool?

我总是想知道 [pool release] 和 [pool drain] 之间的区别..

当我们在 IOS 中创建基于 View 的应用程序时,使用 [pool release]。

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

为什么要以不同的方式使用它们?

【问题讨论】:

    标签: objective-c


    【解决方案1】:

    来自documentation

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-01-18
        • 1970-01-01
        • 2017-01-03
        • 2010-10-22
        • 2019-04-15
        • 2020-05-30
        • 2011-09-17
        • 2018-01-16
        • 1970-01-01
        相关资源
        最近更新 更多