2016-09-14 9 views
2

Я имею щеколду времени преобразования моего рабочий NSData быстрый 2.2 кода в 3.Преобразования операции NSData UnsafePointer Свифта 3

У меня есть много ошибок, которые похожи в одном файле, и я могу» t получить его для компиляции, чтобы проверить мое преобразование. Вот исходные линии:

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.

Как преобразовать эти две строки?

Если у меня появятся более конкретные ошибки, я отправлю их.

+0

Это может помочь: ht tp: //stackoverflow.com/questions/38983277/how-to-get-bytes-out-of-an-unsafemutablerawpointer –

+0

Спасибо. Помогло немного с несколькими другими линиями, но не с моими главными проблемами. Я работаю над обновлением вопроса. – Siriss

ответ

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)