iOS 中的CF

NS是objc的基础库
CG,CF等是比较底层的C语言的库
可以理解UIFont就是用objc封装过的CGFont,用起来方便些```


在iOS世界,主要有两种对象:Objective-C 对象和 Core Foundation 对象。Core Foundation 对象主要是由C语言实现的 Core Foundation Framework 的对象,其中也有对象引用计数的概念,只不过不是 Cocoa Framework中Foundation Framework 的 retain/release,而是自身的 CFRetain/CFRelease 接口。

这两种对象间可以互相转换和操作,不使用ARC的时候,单纯的用C的类型转换,不需要消耗CPU的资源,所以叫做 Toll-Free bridged。比如 NSArray和CFArrayRef, NSString和CFStringRef,他们虽然属于不同的 Framework,但是具有相同的对象结构,所以可以用标准C的类型转换。

比如不使用ARC时,我们用下面的代码:

NSString *string = [NSString stringWithFormat:...];
CFStringRef cfString = (CFStringRef)string;

但是在ARC有效的情况下,将出现编译错误,我们需要怎样做:用 __bridge 或者 __bridge_retained 来转型,其差别就是变更对象的所有权。

***

   Core Foundation (also called CF) 是在MAC iOS里的C程序的接口,也是混合的低端常规和修饰函数集合. Apple 发布他作为叫CF-Lite的开源项目,它可以作为MAC OS X 跨平台开发工具, Linux, 和 Windows (通过 Cygwin);还有一个第三方开源工具叫 OpenCFLite 。大部分核心基础内容是追随某一命名规则处理非透明对象,例如CFDictionaryRef 名字以 CFDictionary开头,这些对象一般被CFRetain and CFRelease引用 。


***

[mark](http://blog.csdn.net/pjk1129/article/details/6456357)

***
(void)viewDidLoad { [super viewDidLoad]; //读取plist文件在程序文件夹中的文件,并且要注意,程序文件的文件只能读不能写,只能在程序沙盒之中; NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"plisttest" ofType:@"plist。

你可能感兴趣的:(iOS 中的CF)