CoreFoundation.framework
来源:互联网 发布:java string类split 编辑:程序博客网 时间:2024/05/18 03:16
from http://blog.csdn.net/chengyakun11/article/details/19410149
Core Foundation框架 (CoreFoundation.framework) 是一组低层次的C语言接口,(部分地)与Objective-C Foundation框架并行。它们为iOS应用程序提供基本数据管理和服务功能。下面列举该框架支持进行管理的数据以及可提供的服务: 群体数据类型 (数组、集合等)、程序包、字符串管理、日期和时间管理、原始数据块管理、偏好管理、URL及数据流操作、线程和RunLoop、端口和soket通讯.
Objective-C指针与CoreFoundation指针之间的转换
ARC仅管理Objective-C指针(retain、release、autorelease),不管理CoreFoundation指针,CF指针由人工管理,手动的CFRetain和CFRelease来管理,注,CF中没有autorelease。
CocoaFoundation指针与CoreFoundation指针转换,需要考虑的是所指向对象所有权的归属。ARC提供了3个修饰符来管理。
1. __bridge,什么也不做,仅仅是转换。此种情况下:
i). 从Cocoa转换到Core,需要人工CFRetain,否则,Cocoa指针释放后, 传出去的指针则无效。
ii). 从Core转换到Cocoa,需要人工CFRelease,否则,Cocoa指针释放后,对象引用计数仍为1,不会被销毁。
2. __bridge_retained,转换后自动调用CFRetain,即帮助自动解决上述i的情形。
3. __bridge_transfer,转换后自动调用CFRelease,即帮助自动解决上述ii的情形。
由于ARC不能管理Core Foundation Object的生命周期,所以在Core Foundation和ARC之间,我们需要使用到__bridge,__bridge_retained和__bridge_transfer三个转换关键字。
根据苹果官方的文档(https://developer.apple.com/library/i...):
__bridge只做类型转换,但是不修改对象(内存)管理权;
__bridge_retained(也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象;
__bridge_transfer(也可以使用CFBridgingRelease)将Core Foundation的对象转换为Objective-C的对象,同时将对象(内存)的管理权交给ARC。
Core Foundation 框架
- CoreFoundation.framework
- CoreFoundation.framework
- CoreFoundation框架
- CoreFoundation 源码
- Foundation 和 CoreFoundation指针转换
- CoreFoundation于Foundation对象转换
- 苹果的CoreFoundation部分源代码
- 中文转换为英文(CoreFoundation框架)
- corefoundation与foundation的桥接问题
- coreFoundation框架转换为foundation -->桥接
- 【Objective-C指针与CoreFoundation指针之间的转换】
- IOS 学习之 —— Foundation & CoreFoundation 的转换
- socket编程(十一)CFNetworking框架/CFSocket////CFStream属于CoreFoundation
- Objective-C指针与CoreFoundation指针之间的转换
- framework
- Framework
- Framework
- FrameWork
- 中间件
- 跨浏览器插件框架FireBreath安装与使用之二——Linux下的插件
- JAVA数组、集合排序
- atitit.提升开发效率---mda 软件开发方式的革命
- Android: 写文件到SD卡
- CoreFoundation.framework
- 【C++所遇】“pow”: 对重载函数的调用不明确
- Windows下搭建MinGW+GTK开发环境
- 两个View 使用BLOCK传值
- Cocos2dx 3.0 Android&Win32开发环境搭建
- FireBreath学习之一 开发环境搭建
- 浏览器插件体系架构 FireBreath
- 3.15 Length of Last Word
- 解决chrome账户登录不上的办法