UnsafeMutablePointer <bytef> swift3

时间:2016-09-14 09:54:58

标签: swift3 unsafemutablepointer

swift3中的跟进行会出错。

out = UnsafeMutablePointer<Bytef>(data.mutableBytes)

无法使用类型&#39;(UnsafeMutableRawPointer)&#39;

的参数列表调用类型'UnsafeMutablePointer<Bytef>'的初始值设定项

1 个答案:

答案 0 :(得分:1)

我并不是100%确定我明白你在问什么,但是,处理数据指针的方式在swift3中有所改变:

Swift2

当我想在swift2中访问数据流中的实际字节时,你会做一些时髦的指针,将数据转换为不安全的可变指针,然后指向引用所有的[UInt8]数组直接在数据流中的字节。

根据您的要求,您可能在过去尝试过类似的事情。

Swift3

您现在有两个命令withUnsafeByteswithUnsafeMutableBytes。在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
        }

这是你在找什么?