Core Foundation框架是蘋果公司提供一套概念來源於Foundation框架,編程接口面向C語言風格的API。雖然在Swift中調用這種C語言風格的API比較麻煩,但是在OS X和iOS開發過程中,有時候使用CoreFoundation框架的API是非常方便的,例如在與C語言混合編碼的時候。
Core Foundation框架與Foundation框架緊密相關,他們具有與相同的接口,但是不同。Core Foundation框架是基於C語言風格的,而Foundation框架是基於Objective-C語言風格的。在OS X和iOS程序代碼中經常會有多種語言風格的代碼混合在一起的情況,這使得我們開發變得更加麻煩。
數據類型映射
Core Foundation框架提供了一些不透明的數據類型,這些數據類型封裝了一些數據和操作,他們也可以稱為“類”,他們都繼承於CFType類,CFType是所用Core Foundation框架類型的根類。這些數據類型在Foundation框架中都有相應的數據類型與之對應,這些數據類型也有一些與Swift原生數據類型有對應關系。
wKiom1bdBzWTXj4_AAKt44FvAc4610.jpg
看看Swift原生類型與Core Foundation類型之間的轉換示例:
import CoreFoundation import Foundation var cfstr1: CFString ="Hello,World" //創建CFString字符串 var str: String = cfstr1as String //將CFString字符串轉換為Swift原生字符串String var cfstr2: CFString = str //將Swift原生字符串String轉換為CFString字符串
這個轉換過程中Core Foundation類型轉換為Swift原生類型是需要強制類型轉換的。