Swift 3 がリリースされてから廃止されたレシート検証クラスがあります。いくつかの問題を修正しましたが、まだ多くの問題があります...
私が使用した GitHub ソース コードは次のとおりです。
最初のエラー:
var p = UnsafePointer<UInt8>(data.bytes)
コンパイラのスロー: UnsafeRawPointer 型の引数リストを使用して UnsafePointer(UInt8) 型の初期化子を呼び出すことはできません
2 番目のエラー
while (ptr < end)
二項演算子 < は 2 つの UnsafePointer(UInt8) オペランドに適用できません
よろしくお願いします:)
編集
LinShiwei の回答のおかげで、UnsafePointer 宣言の解決策が見つかりました。コンパイルされますが、まだテストされていません(他のエラーによりテストが回避されるため):
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)