OC对象与Core Foundation对象的转换
来源:互联网 发布:js金沙.com 11 编辑:程序博客网 时间:2024/06/05 22:55
OC对象使用了ARC,自动释放内存,但是CF中的对象没有ARC,必须要手动进行引用计数和内存释放.
两者对象之间的互相转换有三种形式:
1.__bridge:
直接转换,部改变对象的持有状况:
id obj = [NSObject new];cfObject = (_bridge cfObject) obj;//不改变对象持有状况,cf对象不能获得obj的引用.id obc = (__bridge id)cfObject;//但obc是强引用,是被__strong修饰的,必定获得cf对象的强引用.
2.CFBridgingRetain 和 __bridge_retained:
转换得到的CF对象获得一个强引用,引用计数加1,需要人工的使用CFRelease来释放CF对象:
cfobject = CFBridgingRetain(obj);//cfoject具有强引用,必须使用手工释放CFRelease(cfobject);
将cf对象赋值给id时,释放CF对象本身的引用:
id obj = (__bridge_transfer id)cfObject;//id拥有一个强引用,但cfObject本身的引用已经被释放了.
0 0
- OC对象与Core Foundation对象的转换
- Core Foundation(C对象)与 Foundation(OC对象)之间的转换 理解
- Core Foundation(C对象)与 Foundation(OC对象)之间的转换 理解
- Core Foundation(C对象)与 Foundation(OC对象)之间的转换 理解
- Foundation对象与Core Foundation对象如何转换
- ARC 和 非ARC 下 oc对象和core Foundation对象的转换
- Foundation对象与Core Foundation对象间的转换:Toll-Free Birdge
- Objective-C对象与Core Foundation对象
- Objective-C对象与Core Foundation对象
- core foundation framework对象和foundation framework对象的相互转换 ---Toll-Free Bridging
- OC中Foundation集合的使用(其中包括基本数据类型与对象进行转换)
- Core Foundation对象的内存管理原则
- Core Foundation 对象的内存管理
- Objective-C 和 Core Foundation 对象相互转换
- Objective-C 和 Core Foundation 对象相互转换内存管理
- OC对象与JSON转换
- Objective-C 和 Core Foundation 对象相互转换的内存管理总结
- Objective-C 和 Core Foundation 对象相互转换的内存管理总结
- SAP 用户权限学习
- <iOS>关于Xcode上的Other linker flags
- Android: Service中创建窗口显示(TYPE_SYSTEM_ALERT, TYPE_SYSTEM_OVERLAY)
- android Camera iso 分析
- How to install XenServer Tools - Linux
- OC对象与Core Foundation对象的转换
- Oracle学习笔记(12)------------集合、序列
- 浏览器标记已读链接
- 【bzoj3790】 神奇项链 mancher+树状数组优化dp
- Linux下面的路径问题
- mybatis报错:The alias 'xxx' is already mapped to the value 'com.demo.xxx'
- Windows XP SP1扫描结果分享
- GRE写作必备句型
- 什么是程序员?