如果引入必要的頭文件,在Objective-C語言中可以使用C數據類型。而在Swift語言中是不能直接使用C數據類型,蘋果公司為Swift語言提供與C語言相對應數據類型。這些類型主要包括:C語言基本數據類型和指針類型。
C語言基本數據類型
如表所述是Swift數據類型與C語言基本數據類型對應關系表。
Swift語言中的這些數據類型與Swift原生的數據類型一樣都,本質上都是結構體類型。我們可以他們的構造函數創建這些數據類型的實例。示例代碼如下:
var intSwift = 80 //int var intNumber = NSNumber(int: CInt(intSwift)) //unsigned char var unsignedCharNumber = NSNumber(unsignedChar: CUnsignedChar(intSwift)) //unsigned int var unsignedIntNumber = NSNumber(unsignedInt: CUnsignedInt(intSwift))
變量intSwift所存儲80是Int類型。代碼中CInt(intSwift)是實例化CInt類型,它實現了將Int類型轉化為C語言int類型,在Swift中使用CInt表示。
代碼中CUnsignedChar(intSwift)是將Int類型轉化為C語言unsigned char類型,在Swift中使用CUnsignedChar表示。
代碼中的CUnsignedInt(intSwift))是將Int類型轉化為C語言unsigned int類型,在Swift中使用CUnsignedInt表示。
C語言指針類型
如表所述是Swift數據類型與C語言指針數據類型對應關系表。
從表可見針對C語言多樣的指針形式,Swift主要通過提供了三種不安全的泛型指針類型:UnsafePointer
下面我們分別介紹一下。
1.UnsafePointer
UnsafePointer
init(_ other: COpaquePointer)。通過COpaquePointer類型指針創建。
init(_ from: UnsafeMutablePointer)。通過UnsafeMutablePointer類型指針創建。
init(_ from: UnsafePointer)。通過UnsafePointer類型指針創建。
UnsafePointer
memory。只讀屬性,它能夠訪問指針指向的內容。
UnsafePointer
successor() -> UnsafePointer
predecessor() -> UnsafePointer
2. UnsafeMutablePointer
UnsafeMutablePointer
3. AutoreleasingUnsafeMutablePointer
AutoreleasingUnsafeMutablePointer