iOS技术专题iosiOS开发

iOS打印引用计数

2017-03-28  本文已影响307人  43b86d3b5040

MRC

id obj = [[NSObject alloc] init];
printf("retain count = %ld\n",obj.retainCount);

ARC

ACR下禁止查看Objective-C对象的引用计数,但是Objective-C对象可以转化为Core Foundation对象

id obj = [[NSObject alloc]init];
printf("retain count = %ld\n",CFGetRetainCount((__bridge CFTypeRef)(obj)));

需要注意,这里要用__bridge来转换,如果用__bridge_retained来转换的话,实际上,生成了一个Core Foundation对象,并且retain了一次原来的Objective-C对象,造成引用计数比实际值大一。
运行结果

retain cout = 1
上一篇下一篇

猜你喜欢

热点阅读