作者:传说中的汽水枪
地址: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会自动添加retain
和release
。
这个结论跟文档的描述是不一致的。我想着也是以前ARC的情况吧,反正现在不是了。
网友评论