Core Foundation框架 (CoreFoundation.framework) 是一組C語言接口蝌麸,它們?yōu)閕OS應(yīng)用程序提供基本數(shù)據(jù)管理和服務(wù)功能。下面列舉該框架支持進(jìn)行管理的數(shù)據(jù)以及可提供的服務(wù):
群體數(shù)據(jù)類型 (數(shù)組涎才、集合等)
程序包
字符串管理
日期和時(shí)間管理
原始數(shù)據(jù)塊管理
偏好管理
URL及數(shù)據(jù)流操作
線程和RunLoop
端口和soket通訊
Core Foundation框架和Foundation框架緊密相關(guān)的圆,它們?yōu)橄嗤δ芴峁┙涌谙常獸oundation框架提供Objective-C接口囊卜。如果您將Foundation對(duì)象和Core Foundation類型摻雜使用,則可利用兩個(gè)框架之間的 “toll-free bridging”错沃。所謂的Toll-free bridging是說您可以在某個(gè)框架的方法或函數(shù)同時(shí)使用Core Foundatio和Foundation 框架中的某些類型栅组。很多數(shù)據(jù)類型支持這一特性,其中包括群體和字符串?dāng)?shù)據(jù)類型枢析。每個(gè)框架的類和類型描述都會(huì)對(duì)某個(gè)對(duì)象是否為 toll-free bridged玉掸,應(yīng)和什么對(duì)象橋接進(jìn)行說明。
如需進(jìn)一步信息醒叁,請(qǐng)閱讀Core Foundation 框架參考司浪。
- Objective-C指針與CoreFoundation指針之間的轉(zhuǎn)換
ARC僅管理Objective-C指針(retain泊业、release、autorelease)啊易,不管理CoreFoundation指針吁伺,CF指針由人工管理,手動(dòng)的CFRetain和CFRelease來管理租谈,注篮奄,CF中沒有autorelease。
CocoaFoundation指針與CoreFoundation指針轉(zhuǎn)換垦垂,需要考慮的是所指向?qū)ο笏袡?quán)的歸屬宦搬。ARC提供了3個(gè)修飾符來管理牙瓢。
1. __bridge劫拗,什么也不做,僅僅是轉(zhuǎn)換矾克。此種情況下:
i). 從Cocoa轉(zhuǎn)換到Core页慷,需要人工CFRetain,否則胁附,Cocoa指針釋放后酒繁, 傳出去的指針則無效。
ii). 從Core轉(zhuǎn)換到Cocoa控妻,需要人工CFRelease州袒,否則,Cocoa指針釋放后弓候,對(duì)象引用計(jì)數(shù)仍為1郎哭,不會(huì)被銷毀。
2. __bridge_retained菇存,轉(zhuǎn)換后自動(dòng)調(diào)用CFRetain夸研,即幫助自動(dòng)解決上述i的情形。
2. __bridge_transfer依鸥,轉(zhuǎn)換后自動(dòng)調(diào)用CFRelease亥至,即幫助自動(dòng)解決上述ii的情形。