【objective-C】OC对象和CF对象之间的桥接转换(bridge)

来源:互联网 发布:snmpwalk 软件下载 编辑:程序博客网 时间:2024/06/07 02:26

1.__bridge:CF和OC对象转化时只涉及对象类型不涉及对象所有权的转化;

2.__bridge_transfer:常用在讲CF对象转换成OC对象时,将CF对象的所有权交给OC对象,此时ARC就能自动管理该内存;(作用同CFBridgingRelease())

相当于MRC下:id obj = (id)p;[obj retain];[(id)p release];

3.__bridge_retained:(与__bridge_transfer相反)常用在将OC对象转换成CF对象时,将OC对象的所有权交给CF对象来管理;(作用同CFBridgingRetain())
当使用_bridge_retained标识符以后,代表OC要将对象所有权交给CF对象自己来管理,所以我们要在ref使用完成以后用CFRelease将其手动释放.

相当于MRC下:id obj = [[NSObject alloc] init];void *p = obj;[(id)p retain];