uintptr_t _objc_rootRetainCount(id obj)如上声明的_ o b j c _ r o o t R e t a i n C o u n t 函数可获取指定对象的引用计数数值。请看以下几个例子。
{
id __strong obj = [[NSObject alloc] init];
NSLog(@"retain count = %d", _objc_rootRetainCount(obj));
}
该源代码中,对象仅通过变量obj 的强引用被持有,所以为1。
retain count = 1
下面使用_ _ weak 修饰符。
{
id __strong obj = [[NSObject alloc] init];
id __weak o = obj;
NSLog(@"retain count = %d", _objc_rootRetainCount(obj));
}
由于弱引用并不持有对象,所以赋值给附有_ _ weak 修饰符的变量中也必定不会改变引用计数数值。
retain count = 1