UnsafeMutablePointer<Bytef> swift3
Posted
技术标签:
【中文标题】UnsafeMutablePointer<Bytef> swift3【英文标题】: 【发布时间】:2016-09-14 09:54:58 【问题描述】:swift3 中的后续行会出错。
out = UnsafeMutablePointer<Bytef>(data.mutableBytes)
无法使用类型为“(UnsafeMutableRawPointer)”的参数列表调用类型 'UnsafeMutablePointer<Bytef>'
的初始化程序
【问题讨论】:
我也有同样的问题...有人吗? 您需要将 data.mutableBytes 转换为 UnsafeMutablePointer我不是 100% 确定我理解您的要求,但是,swift3 中处理数据指针的方式发生了一些变化:
Swift2
当我想在 swift2 中访问数据流中的实际字节时,你会做一些时髦的指针东西,将数据转换成一个不安全的可变指针,然后指向一个 [UInt8]
数组,它引用了所有字节直接数据流。
根据您的要求,您过去可能一直在尝试做类似的事情。
Swift3
您现在有两个命令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
这是你要找的吗?
【讨论】:
以上是关于UnsafeMutablePointer<Bytef> swift3的主要内容,如果未能解决你的问题,请参考以下文章
UnsafeMutablePointer<Float> 到 UnsafeMutablePointer<_>
如何将该 UnsafeMutablePointer<UnsafeMutablePointer<Float>> 变量转换为 AudioBufferList?
如何用 arg 编写块。 Swift 闭包中的“UnsafeMutablePointer<UnsafeMutablePointer<Float>>”
CoreGraphics - 不能用 UnsafeMutablePointer<UInt8> 替换 UnsafeMutablePointer<UInt32>
swift3.0 无法将类型“[UnsafeMutablePointer<Int8>]”的值转换为预期的参数类型“UnsafeMutablePointer<Int8>?”