美文网首页
UnsafePointer

UnsafePointer

作者: fordring2008 | 来源:发表于2017-02-04 10:22 被阅读21次

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

      本文链接:https://www.haomeiwen.com/subject/oyyjittx.html