Swift - 将 String/Data 类型转换成UnsafeMutablePointer<UInt8>类型
作者:hangge | 2018-10-31 08:10
虽然 Swift 并不推荐我们直接对指针进行操作,但有时在与 C 混编时,不可避免地要将对象转换为 C 的指针类型以便传值。本文演示如何将 String 类型(或者说 Data 类型)数据转成对应的 UnsafeMutablePointer<UInt8>。
(2)而要将 String 数据转成对应的 UnsafeMutablePointer<UInt8>,同样是先将 String 转成 Data,然后再通过 Data 获取指针:
let data = "航歌".data(using: .utf8)! let bytes = [UInt8](data) print(bytes)
(2)而要将 String 数据转成对应的 UnsafeMutablePointer<UInt8>,同样是先将 String 转成 Data,然后再通过 Data 获取指针:
var data = "航歌".data(using: .utf8)! data.withUnsafeMutableBytes({ (bytes: UnsafeMutablePointer<UInt8>) -> Void in //bytes即为指针地址 print("指针地址:\(bytes)") //通过指针移动来取值(赋值也是可以的) var bytesStart = bytes for _ in 0..<6 { print(bytesStart.pointee) bytesStart += 1 } })
全部评论(0)