Преобразование операции 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)
Другие вопросы по тегам