美文网首页
ARC与MRC下变量赋值引用计数探究

ARC与MRC下变量赋值引用计数探究

作者: 传说中的汽水枪 | 来源:发表于2019-01-27 19:27 被阅读2次

作者:传说中的汽水枪
地址:https://www.jianshu.com/p/2246568d3c75
版权所有,欢迎转载,转载请注明出处,欢迎留言评论。

一些相关的基础可以参考:ARC与MRC下给方法传递参数引用计数探究
此篇文章是对第一条进行相关的测试与验证:
loading a retainable pointer from an object with non-weak ownership

MRC环境

- (void)_test_variable
{
    RXARCTmpObject *object = [[RXARCTmpObject alloc] init];
    NSLog(@"count after alloc init:%zd", [object retainCount]);
    id value = object;
    NSLog(@"count after variable:%zd", [value retainCount]);
    [object release];
}

输出结果:

count after alloc init:1
count after variable:1
RXARCTmpObject dealloc

ARC环境

- (void)_test_variable
{
    RXARCTmpObject *object = [[RXARCTmpObject alloc] init];
    NSLog(@"count after alloc init:%zd", [RXMRCUtil objectRetainCount:object]);
    id value = object;
    NSLog(@"count after variable:%zd", [RXMRCUtil objectRetainCount:value]);
}

输出结果:

count after alloc init:1
count after variable:2
RXARCTmpObject dealloc

结论

很明显,在ARC环境,这种情况,ARC会自动添加retainrelease
这个结论跟文档的描述是不一致的。我想着也是以前ARC的情况吧,反正现在不是了。

相关文章

网友评论

      本文标题:ARC与MRC下变量赋值引用计数探究

      本文链接:https://www.haomeiwen.com/subject/udjnjqtx.html