【发布时间】:2016-11-16 16:48:19
【问题描述】:
我正在从 Swift 2 迁移到 Swift 3,但我被困在了某个时刻。
斯威夫特 2
let arr = UnsafePointer<UInt32>(UnsafePointer<UInt8>(buf).advanced(by: off))
let msk = arr[0].bigEndian & 0x7fffffff
我在第一行出现错误提示
'init' 不可用:使用 'withMemoryRebound(to:capacity:_)' 暂时将内存视为另一种布局兼容的类型。
我尝试使用withMemoryoRebound 方法,但我不确定参数。
根据this docuentation,UnsafePointer<> 已被UnsafeRawPointer 取代。所以我改变了我的代码如下
let arr = UnsafeRawPointer(UnsafePointer<UInt8>(buf).advanced(by: off))
let msk = arr[0].bigEndian & 0x7fffffff
但是在第二行它说
类型“UnsafeRawPointer”没有下标成员
我怎样才能成功地将其转换为 Swift 3?
【问题讨论】: