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)