У меня есть код Swift, который читает двоичный файл, представляющий последовательность значений UInt32, например:
let fileData = binaryFile.readData(ofLength: 44)
guard fileData.count > 0 else { break }
let headerData = fileData.withUnsafeBytes {
Array(UnsafeBufferPointer<UInt32>(start: $0, count: 11))
}
let polyCount = headerData[1].bigEndian
let polyFlags = headerData[2].bigEndian
Я бы некоторое время не использовал программу, содержащую этот код, но когда возвращался к ней недавно , он все еще работает, как и ожидалось, но теперь выдает предупреждение об устаревании:
"withUnsafeBytes
устарело: используйте withUnsafeBytes<R>(_: (UnsafeRawBufferPointer) throws -> R) rethrows -> R
вместо"
Я довольно долго искал Неослабный способ сделать это без успеха. В сети есть много примеров (в том числе в stackoverflow), но почти все они написаны до того, как это устарело. Честно говоря, я зажарил свой мозг на охоте и пробовал делать предложения! Я готов признать, что мне не хватает чего-то совершенно очевидного («Если это становится сложным, вы делаете это неправильно»), но я работаю в среде, где у меня нет коллег, чтобы спросить… кроме как здесь.
Любое руководство будет высоко ценится.