__bridge只做OC和CF对象之间的类型转换不涉及对象所有权的转化;
__bridge_transfer:用在将CF对象转换成OC对象时,并且将CF对象的所有权交给OC对象,此时ARC就能自动管理该内存了。作用同"CFBridgeTransfer()"
__bridge_retained:用在将OC对象转换成CF对象,并且将OC对象的所有权交给CF对象来管理,作用同"CFBridgingRetain() "。此时我们要在使用完CF对象后用CFRelease将其手动释放。
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
CFURLRef urlRef = (__bridge_retained CFURLRef)url;
CFRelease(urlRef);