// UnsafePointer// 對于底層 C API 進行轉化的時候,Swift會轉換成 UnsafePointer的類型/* 比如下面的一個 C 函數,轉換為 Swift的方法應該是void method(const int *num){? ? print("%d", *num)} */func method(_ num: UnsafePointer) {
print(num.pointee)
// swift 1.0 2.0 num.memory
// swift 3.0寫法? num.pointee
}
/*
UnsafePointer 就是Swift中專門針對指針的轉換。
對于其他 C 中的基礎類,在Swift 中對應的類型都遵循統一的命名規則,在前面加一個字幕 C
如 CInt, CBool, CChar
上面的 C 函數指明了輸入的 num 指針的不可變 (const), 因此在 Swift中對應 UnsafePointer 這個不可變版本,
普通的版本,對應的是, UnsafeMutablePointer
*/
// C 示例
/*
int a = 123
method(&a);? // 輸出 123
*/
// Swift 示例
var a : CInt = 123
method(&a)? // 輸出 123