Преобразование операции NSData UnsafePointer в Swift 3
Я трачу время на преобразование моего рабочего кода 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)
Я не могу понять, как преобразовать вторую строку, потому что память не является членом UnsafeRawPointer, который, как кажется, требуется Swift 3.
Как я могу преобразовать эти две строки?
Если я получу более конкретные ошибки, я опубликую их.
1 ответ
Решение
Предполагая ваш bytes
взято из некоторых NSData
"s bytes
имущество:
let bytes = nsData.bytes
Тогда вам не нужно использовать UnsafeRawPointer(_:)
:
let dataPtr = bytes.advanced(by: f_offset)
И может использовать метод UnsafeRawPointer
:
let retVal = dataPtr.load(as: T.self)