【问题标题】:Is automatic object deallocation a feature of ARC or a feature of the Objective-C language itself?自动对象释放是 ARC 的特性还是 Objective-C 语言本身的特性?
【发布时间】:2017-06-25 11:53:05
【问题描述】:

想象一个不使用 ARC 的程序,因此我们必须手动进行引用计数。当对象达到零 (0) 的引用计数时自动释放对象的行为是由 ARC 完成的,还是由语言(编译器)本身提供而不考虑 ARC 的使用?

【问题讨论】:

    标签: objective-c memory-management automatic-ref-counting


    【解决方案1】:

    释放对象是-release 实现的一部分。来自documentation for that method(它是NSObject 协议的一部分,不是类):

    当引用计数达到 0 时,接收方会收到dealloc 消息。

    这东西完全早于ARC,所以显然不能依赖ARC。

    【讨论】:

      【解决方案2】:

      不,这是 Objective C 运行时的一个特性。 ARC 为你插入 retain/release 呼叫(以及其他一些魔法)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-16
        • 2011-11-18
        • 1970-01-01
        • 2013-09-07
        • 1970-01-01
        • 2016-05-09
        相关资源
        最近更新 更多