Neu in Xcode 8 Beta 4, NSErrorist mit dem Swift- ErrorProtokolltyp verbunden. Dies wirkt sich auf StoreKit aus, wenn fehlerhafte SKPaymentTransactions behandelt werden. Sie sollten überprüfen, ob der Fehler nicht aufgetreten ist, da die Transaktion abgebrochen wurde, um festzustellen, ob dem Benutzer eine Fehlermeldung angezeigt werden soll. Sie tun dies, indem Sie die Fehler untersuchen code. Aber mit Errorstatt NSErrorgibt es keine codedefiniert. Ich konnte nicht herausfinden, wie ich den Fehlercode richtig abrufen kann Error.
Dies funktionierte in der vorherigen Version von Swift 3:
func failedTransaction(_ transaction: SKPaymentTransaction) {
if let transactionError = transaction.error {
if transactionError.code != SKErrorCode.paymentCancelled.rawValue {
//show error to user
}
}
...
}
Nun das errorist ein Errornicht NSError, codeist kein Mitglied.
if (transaction.error as NSError).code != SKErrorCode.PaymentCancelled {