UnsafePointer

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

你可能感兴趣的:(UnsafePointer)