swift3中的下面一行会出错。
out = UnsafeMutablePointer<Bytef>(data.mutableBytes)不能使用类型“( 'UnsafeMutablePointer<Bytef>' )”的参数列表调用类型UnsafeMutableRawPointer的初始化程序
发布于 2016-10-24 09:36:33
我不能100%确定我是否理解您的要求,但是,在swift3中处理数据指针的方式发生了一些变化:
Swift2
当我想在swift2中访问数据流中的实际字节时,您将执行一些时髦的指针填充,将数据转换为不安全的可变指针,然后指向直接引用数据流中所有字节的[UInt8]数组。
从你的要求来看,你可能在过去做过类似的事情。
Swift3
现在有两个命令withUnsafeBytes和withUnsafeMutableBytes。在swift2中,我过去通过获取字节并将其转换为指针数组(类似于您正在做的事情)来处理数据。
在斯威夫特3中,你现在可以这样做了:
return data.withUnsafeBytes { (bytes: UnsafePointer<UInt8>) -> Bool in
return 1 == Int((bytes[1] & 0x2) >> 1)
}或者这个:
rawData.withUnsafeMutableBytes {
(bytes: UnsafeMutablePointer<UInt8>) -> Void in
bytes[0] = newValue.rawValue
}这就是你要找的吗?
https://stackoverflow.com/questions/39487515
复制相似问题