什么版本方法包含?

Aks*_*ade -2 objective-c

我正在阅读苹果文档,其中我遇到了发布方法说明.其中说:

当引用计数达到0时,接收器将发送一个dealloc消息.

那么,我想知道发布方法的定义是什么?是否有检查保留计数的条件?如果保留计数为0,则对象被解除分配?

如果有人提供代码片段会很有帮助.

bbu*_*bum 8

NSObject的实现在10.9中被移动到ObjC运行时.因此,NSObject的实现是开源的.

- (oneway void)release
__attribute__((aligned(16)))
{
    // tagged pointer check is inside _objc_rootReleaseWasZero().

    if (_objc_rootReleaseWasZero(self) == false) {
        return;
    }
    [self dealloc];
}
Run Code Online (Sandbox Code Playgroud)

您可以_objc_rootReleaseWasZero()在上面的链接中阅读.这是一个深深的兔子洞.