// 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