【发布时间】:2017-06-25 11:53:05
【问题描述】:
想象一个不使用 ARC 的程序,因此我们必须手动进行引用计数。当对象达到零 (0) 的引用计数时自动释放对象的行为是由 ARC 完成的,还是由语言(编译器)本身提供而不考虑 ARC 的使用?
【问题讨论】:
标签: objective-c memory-management automatic-ref-counting
想象一个不使用 ARC 的程序,因此我们必须手动进行引用计数。当对象达到零 (0) 的引用计数时自动释放对象的行为是由 ARC 完成的,还是由语言(编译器)本身提供而不考虑 ARC 的使用?
【问题讨论】:
标签: objective-c memory-management automatic-ref-counting
释放对象是-release 实现的一部分。来自documentation for that method(它是NSObject 协议的一部分,不是类):
当引用计数达到 0 时,接收方会收到
dealloc消息。
这东西完全早于ARC,所以显然不能依赖ARC。
【讨论】:
不,这是 Objective C 运行时的一个特性。 ARC 为你插入 retain/release 呼叫(以及其他一些魔法)。
【讨论】: