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];