您的位置:首页 > 其它

ARC 下引用计数的打印

2016-09-03 11:21 309 查看
      在管理内存的时候经常需要打印对象的引用计数,来检测对象是否发生内存泄漏,但是在ARC下是禁止查看Objective-C对象的引用计数的,所以导致在ARC下无法打印对象的引用计数;

    但是Objective-C 对象可以转化为CoreFoundation对象,所以可以使用如下代码在ARC下打印对象的引用计数;

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


运行结果:





这里需要注意的是,要用__bridge来转换,如果用__bridge_retained 来转换的话,实际上生成了一个CoreFoundation 对象,并且retain了一次原来的Objective-C对象,使得引用计数比真实值大一;

使用__bridge_retained的输出结果:





 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: