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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、随机数 不需要随机数种子 arc4random()%N + begin:产生begin~begin+N的随机数...
    我是小胡胡123阅读 9,712评论 0 2
  • Swift2.0 1.defer译为延缓、推迟之意类似栈 注意作用域,其次是调用顺序——即一个作用域结束(注意),...
    zeqinjie阅读 8,638评论 0 50
  • 2014年的苹果全球开发者大会(WWDC),当Craig Federighi向全世界宣布“We have new ...
    yeshenlong520阅读 6,780评论 0 9
  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 8,531评论 3 25
  • 夜半的心慌 止不住的思量 落满酒的愁肠 和撒失眠的谎 遮却的月光 碎的肝脏 丢掉的悲伤 和找不到的花 凌晨的合唱 ...
    人不交阅读 1,072评论 2 3