1
私はswift 2.3プロジェクトを3.1にアップデートしています。この関数を特に1行で変換する問題が発生しています。データの拡張をSwift 3.1およびUnsafeRawPointerに変換するときに問題が発生する
これはデータの拡張です。
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
}
私はUnsafeRawPointerを使用するように変換するために、ライン
let dataPtr = UnsafePointer<UInt8>(bytes).advancedBy(f_offset)
を得るように見えることはできません。私はここでリストアップするにはあまりにも多くの試みを試みましたが、成功しなかった(コンパイルエラー)。
適切な構文は何ですか?