Ich wandere von Swift 2 zu Swift 3 und ich stecke an einem Punkt fest.Swift 3 unsichere Zeiger
Swift 2
let arr = UnsafePointer<UInt32>(UnsafePointer<UInt8>(buf).advanced(by: off))
let msk = arr[0].bigEndian & 0x7fffffff
Ich erhalte eine Fehlermeldung auf der ersten Zeile sagen
'init' steht nicht zur Verfügung: Verwendung 'withMemoryRebound (an: Kapazität: _)' zu vorübergehend ansehen Speicher als ein anderer Layout-kompatibler Typ.
Ich versuchte withMemoryoRebound
Methode zu verwenden, aber ich bin über die Parameter nicht sicher. Gemäß this docuentation wurde UnsafePointer<>
durch UnsafeRawPointer
ersetzt. Also änderte ich meinen Code wie unten
let arr = UnsafeRawPointer(UnsafePointer<UInt8>(buf).advanced(by: off))
let msk = arr[0].bigEndian & 0x7fffffff
Aber hier in der zweiten Zeile sagt es
Typ ‚UnsafeRawPointer‘ hat keine Index Mitglieder
Wie kann ich konvertieren es erfolgreich zu Swift 3?
Dies könnte das sein, was Sie suchen: [? Wie Bytes eines UnsafeMutableRawPointer raus] (http://stackoverflow.com/questions/38983277/how-to-get-bytes-out-of -an-unsaflemablyrawpointer) –