I am updating a swift 2.3 project to 3.1 and I am running into an issue converting this function, specifically on one line.
This is in an extension on 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
}
I can't seem to get the line
let dataPtr = UnsafePointer<UInt8>(bytes).advancedBy(f_offset)
to convert to using an UnsafeRawPointer. I have tried too many to list here with no success (compile errors).
What would be the proper syntax?