UnsafePointer <UInt8> -Initialisierer in Swift 3

Ich habe eine Quittungsprüfungsklasse, die seit der Veröffentlichung von Swift 3 veraltet ist. Ich habe einige Probleme behoben, aber ich habe noch viele ...

Hier ist der GitHub-Quellcode, den ich verwendet habe:https: //gist.github.com/baileysh9/4386ea92b047d97c7285#file-parsing_productids-swif undhttps: //gist.github.com/baileysh9/eddcba49d544635b3cf

Erster Fehler:

    var p = UnsafePointer<UInt8>(data.bytes)

Compiler löst aus: Initialisierer für Typ UnsafePointer (UInt8) kann nicht mit einer Argumentliste vom Typ UnsafeRawPointer aufgerufen werden

Zweiter Fehler

while (ptr < end)

Binary-Operatoren <können nicht auf zwei UnsafePointer (UInt8) -Operanden angewendet werden

Vielen Dan sehr viel im vorraus:)

BEARBEITE

Danke an LinShiwei Antwort Ich habe eine Lösung für die UnsafePointer-Deklaration gefunden. Es wird kompiliert, aber noch nicht getestet (andere Fehler ersparen mir das Testen):

 func getProductIdFromReceipt(_ data:Data) -> String?
{
  let tempData: NSMutableData = NSMutableData(length: 26)!
  data.withUnsafeBytes {
        tempData.replaceBytes(in: NSMakeRange(0, data.count), withBytes: $0)
    }

    var p: UnsafePointer? = tempData.bytes.assumingMemoryBound(to: UInt8.self)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage