2016-09-14 7 views
2

Ich bin ein Heck einer Zeit mit meiner Arbeit NSData schnellen 2.2-Code in die Umwandlung 3.Konvertieren NSData UnsafePointer Betrieb Swift 3

ich viele Fehler haben, die in einer Datei, die alle ähnlich sind, und ich kann‘ t es kompilieren, um meine Konvertierung zu überprüfen. Hier sind die ursprünglichen Linien:

let dataPtr = UnsafePointer<UInt8>(bytes).advancedBy(f_offset) 

let retVal = UnsafePointer<T>(dataPtr).memory 

Ich denke, die erste Zeile dieses umgewandelt wird:

let dataPtr = UnsafeRawPointer(bytes).advanced(by: f_offset) 

Ich kann nicht herausfinden, wie die zweite Zeile zu konvertieren, da Speicher ist kein Mitglied von UnsafeRawPointer, die Swift 3 zu benötigen scheint.

Wie kann ich diese zwei Zeilen konvertieren?

Wenn ich spezifische Fehler bekomme, werde ich sie veröffentlichen.

+0

Dies könnte helfen: ht tp: //stackoverflow.com/questions/38983277/how-to-get-bytes-out-of-an-unsafemutualrawpointer –

+0

Danke. Hat ein bisschen geholfen mit ein paar anderen Zeilen, aber nicht mit meinen Hauptproblemen. Ich arbeite an einem Update der Frage. – Siriss

Antwort

1

Vorausgesetzt, dass Ihr bytes wird von einigen NSData ‚s bytes Eigenschaft genommen:

let bytes = nsData.bytes 

Dann haben Sie keine Notwendigkeit haben zu verwenden UnsafeRawPointer(_:):

let dataPtr = bytes.advanced(by: f_offset) 

Und kann ein Verfahren zur UnsafeRawPointer verwenden:

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