Xcode 8 beta 4中的新增NSError
功能桥接到SwiftError
协议类型。处理失败SKPaymentTransaction
的时,这会影响StoreKit 。您应该检查以确保没有发生错误,因为交易被取消了才知道是否向用户显示错误消息。您可以通过检查错误的完成此操作code
。但是使用Error
代替NSError
,没有code
定义。我还无法弄清楚如何从中正确获取错误代码Error
。
这在Swift 3的先前版本中有效:
func failedTransaction(_ transaction: SKPaymentTransaction) {
if let transactionError = transaction.error {
if transactionError.code != SKErrorCode.paymentCancelled.rawValue {
//show error to user
}
}
...
}
现在error
是一个Error
not NSError
,code
不是成员。
if (transaction.error as NSError).code != SKErrorCode.PaymentCancelled {