ARC下查看對象的引用計數

網上各種文章、問答給出的結論都是“ARC下無法打印對象的引用計數值”。

確實,ARC禁止直接查看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 count = 1

工程開啓了ARC模式,也正確輸出了OC對象的引用計數值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章