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。