2016-11-21 63 views
0

当引用计数变为0或等待直到遇到释放方法(编译器自动插入到ARC中)以便dealloc发生时,对象是否立即释放?引用计数,ARC

+1

需要调用'release'来使引用计数达到0. – rmaddy

+0

将引用计数设置为零是错误的。当count_将变为zero_时,运行时的当前实现将调用'dealloc',但从未实际将其减至零。这实际上是一样的,但是如果你在探索并试图理解潜在的行为,可能会引起混淆。 – Avi

回答

1

与内存管理有关的整个问题是,只有一个明显的地方才能释放对象,因此很难制作大型程序。如果是这样的话,根本就不需要引用计数!

无论何时引用或销毁引用,编译器都会插入retainrelease调用。当调用release时,引用计数递减。如果这样做计数达到0,则调用deinit,并释放对象的内存。这是release呼叫的全部内容。