__bridge 的意思
2015-11-25 17:52
253 查看
最近碰到了CFObject和NSObject转换的问题,由于ARC不能管理Core Foundation Object的生命周期,所以在Core Foundation和ARC之间,我们需要使用到__bridge,__bridge_retained和__bridge_transfer三个转换关键字。
根据苹果官方的文档(https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html):
__bridge只做类型转换,但是不修改对象(内存)管理权;
__bridge_retained(也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象;
__bridge_transfer(也可以使用CFBridgingRelease)将Core Foundation的对象转换为Objective-C的对象,同时将对象(内存)的管理权交给ARC。
根据苹果官方的文档(https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html):
__bridge只做类型转换,但是不修改对象(内存)管理权;
__bridge_retained(也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象;
__bridge_transfer(也可以使用CFBridgingRelease)将Core Foundation的对象转换为Objective-C的对象,同时将对象(内存)的管理权交给ARC。
相关文章推荐
- 文章标题
- Linux 主机名修改
- UIPickerView两列依附关系
- 在windows下添加php的Imagick扩展
- 我在python字符编码上走过的弯路
- Spark RDD系列-------1. 决定Spark RDD分区算法因素的总结
- 运动员最佳匹配问题
- Leetcode 第125题 Valid Palindrome
- js中confirm实现执行操作前弹出确认框的方法
- Android中的权限机制
- HTML5+CSS3 表格设计(Table)
- 从ViewRootImpl类分析View绘制的流程
- C实战:项目构建Make,Automake,CMake
- WebX入门指南
- hdu 3342 Legal or Not(判断成环)
- 使用nginx搭建https服务器(转)
- Android开发人员一见钟情的Java编程技巧!
- 我的Android开发半年工作经验总结
- Android 贝塞尔曲线的魅力
- Xcode7 使用NSURLSession发送HTTP请求的问题