自动对象释放是ARC的一个特性还是Objective-C语言本身的一个特性?

时间:2017-02-08 01:57:13

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

想象一下不使用ARC的程序,这样我们就必须进行手动引用计数。当一个对象达到由ARC完成的引用计数零(0)时自动解除分配的行为,还是由语言(编译器)本身提供,而不管ARC的使用情况如何?

2 个答案:

答案 0 :(得分:1)

取消分配对象是-release实施的一部分。来自documentation for that method(这是NSObject 协议的一部分,而不是类):

  

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

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

答案 1 :(得分:1)

不,它是Objective C运行时的一个特性。 ARC会为您插入retain / release来电(以及其他一些魔法)。