ARC下OC对象与CF对象的桥接(__bridge)

__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);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容