我正在从Swift 2迁移到Swift 3,并且我被困在一个点上。Swift 3 Unsafe指针
斯威夫特2
let arr = UnsafePointer<UInt32>(UnsafePointer<UInt8>(buf).advanced(by: off))
let msk = arr[0].bigEndian & 0x7fffffff
我得到第一线的错误说
是 'init' 是不可用:使用 'withMemoryRebound(到:容量:__)' 来 临时查看内存作为另一种布局兼容类型。
我试图使用withMemoryoRebound
方法,但我不确定参数。 按照this docuentation,UnsafePointer<>
已被UnsafeRawPointer
取代。所以我改变了我的代码如下
let arr = UnsafeRawPointer(UnsafePointer<UInt8>(buf).advanced(by: off))
let msk = arr[0].bigEndian & 0x7fffffff
但这里的第二行,它说
类型“UnsafeRawPointer”无标会员
我怎样才能成功地将其转换为斯威夫特3?
这可能是你在找什么:?如何获得字节出UnsafeMutableRawPointer的(http://stackoverflow.com/questions/38983277/how-to-get-bytes-out-of -an-unsafemutablerawpointer) –