2016-09-14 34 views
2

我有一個時間赫克轉換我的職業NSData的SWIFT 2.2的代碼到3轉換NSData的UnsafePointer操作斯威夫特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似乎需要。

我怎麼能轉換這兩行?

如果我得到更多的具體錯誤,我將發佈他們。

+0

這可能幫助:HT tp://stackoverflow.com/questions/38983277/how-to-get-bytes-out-of-an-unsafemutablerawpointer –

+0

謝謝。已經幫助了一些其他的一些線,但沒有與我的主要問題。我正在研究問題更新。 – Siriss

回答

1

假設您的bytes從一些NSDatabytes財產採取:

let bytes = nsData.bytes 

那麼你就沒有必要使用UnsafeRawPointer(_:)

let dataPtr = bytes.advanced(by: f_offset) 

,並可以使用的UnsafeRawPointer方法:

let retVal = dataPtr.load(as: T.self)