我正在努力将我工作的NSData swift 2.2代码转换为3。
我有很多错误在一个文件中都是相似的,我无法编译以检查我的转换。以下是原始行:
let dataPtr = UnsafePointer<UInt8>(bytes).advancedBy(f_offset)
let retVal = UnsafePointer<T>(dataPtr).memory
我认为第一行转换为:
let dataPtr = UnsafeRawPointer(bytes).advanced(by: f_offset)
我无法弄清楚如何转换第二行,因为内存不是Swift 3似乎需要的UnsafeRawPointer的成员。
如何转换这两行?
如果我收到更具体的错误,我会发布它们。
答案 0 :(得分:1)
假设您的bytes
取自某NSData
个bytes
财产:
let bytes = nsData.bytes
然后您无需使用UnsafeRawPointer(_:)
:
let dataPtr = bytes.advanced(by: f_offset)
可以使用UnsafeRawPointer
的方法:
let retVal = dataPtr.load(as: T.self)