1
我正在将swift 2.3项目更新为3.1,并且遇到转换此功能的问题,特别是在一行中。无法将数据扩展转换为Swift 3.1和UnsafeRawPointer
这是对Data的扩展。
public func read<T: BinaryReadable>(offset f_offset: inout Int,
byteOrder: ByteOrder = .HostByteOrder) -> T? {
// Validate the specified offset boundary.
guard self.count >= (f_offset + MemoryLayout<T>.size) else {
return nil
}
//let dataPtr = Unsas
// Get data pointer at offset location.
// TROUBLE CONVERTING THIS LINE
let dataPtr = UnsafePointer<UInt8>(bytes).advancedBy(f_offset)
// Increment the offset position.
f_offset += MemoryLayout<T>.size
// Read data from offset location and return in specified endianess.
let retVal = UnsafeRawPointer(dataPtr).load(as: T.self)
return (byteOrder == .littleEndian) ? retVal.littleEndian : retVal.bigEndian
}
我似乎无法获得行
let dataPtr = UnsafePointer<UInt8>(bytes).advancedBy(f_offset)
转换为使用UnsafeRawPointer。我已经尝试过太多,没有成功(编译错误)。
什么是正确的语法?