UnsafeMutablePointer<Bytef> swift3
UnsafeMutablePointer<Bytef> swift3
swift3 中的后续行出错。
out = UnsafeMutablePointer<Bytef>(data.mutableBytes)
无法使用类型为“(UnsafeMutableRawPointer)”的参数列表调用类型 'UnsafeMutablePointer<Bytef>'
的初始值设定项
我不是 100% 确定我理解你的问题,但是,处理数据指针的方式在 swift3:
中有所改变
斯威夫特2
当我想从 swift2 中的数据流中访问实际字节时,您会做一些时髦的指针操作,将数据转换为不安全的可变指针,然后指向 [UInt8]
直接引用了数据流中的所有字节。
从您的询问来看,您过去可能一直在尝试做类似的事情。
斯威夫特3
您现在有两个命令 withUnsafeBytes
和 withUnsafeMutableBytes
。在 swift2 中,我过去常常通过获取字节并将其转换为指针数组来处理数据(类似于您所做的)。
在 swift 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
}
这是您要找的吗?
swift3 中的后续行出错。
out = UnsafeMutablePointer<Bytef>(data.mutableBytes)
无法使用类型为“(UnsafeMutableRawPointer)”的参数列表调用类型 'UnsafeMutablePointer<Bytef>'
的初始值设定项
我不是 100% 确定我理解你的问题,但是,处理数据指针的方式在 swift3:
中有所改变斯威夫特2
当我想从 swift2 中的数据流中访问实际字节时,您会做一些时髦的指针操作,将数据转换为不安全的可变指针,然后指向 [UInt8]
直接引用了数据流中的所有字节。
从您的询问来看,您过去可能一直在尝试做类似的事情。
斯威夫特3
您现在有两个命令 withUnsafeBytes
和 withUnsafeMutableBytes
。在 swift2 中,我过去常常通过获取字节并将其转换为指针数组来处理数据(类似于您所做的)。
在 swift 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
}
这是您要找的吗?