【问题标题】:Is there GC in latest iphone OS?最新的 iphone 操作系统中有 GC 吗?
【发布时间】:2011-03-22 09:21:35
【问题描述】:

如果我们使用 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];那么使用什么方法,对于最新的iOS,要么耗尽,要么释放。

【问题讨论】:

    标签: iphone garbage-collection autorelease


    【解决方案1】:

    iOS 上没有垃圾收集。

    我按照苹果在documentation 中的建议:

    在垃圾收集的环境中, release 是无操作的,所以除非你这样做 不想给收藏家一个提示 在任何情况下使用排水很重要 可以编译的代码 垃圾收集环境。

    【讨论】:

      【解决方案2】:

      在 iOS 上,NSAutoreleasePool 会在它超出定义的范围时耗尽(只要没有其他引用被持有)。在吸取过程中,它会释放它持有的所有物体。

      因此,调用 release 可能会导致耗尽,只要它是对池的最后引用。

      这与传统的 GC 不同,后者的收集器不受范围限制,并且通常独立于主应用程序代码流工作。

      【讨论】:

        猜你喜欢
        • 2011-04-11
        • 2011-04-11
        • 1970-01-01
        • 1970-01-01
        • 2018-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多