Xcode 8 beta 4 中的新功能,NSError
桥接到 SwiftError
协议类型。这会在处理失败时影响 StoreKitSKPaymentTransaction
s。您应该检查以确保没有因为事务被取消而发生错误,以了解是否向用户显示错误消息。您可以通过检查错误来做到这一点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
is an Error
not NSError
, code
不是会员。
访问 Swift 3 错误类型中的代码和域属性的另一个选项是将其扩展如下:
extension Error {
var code: Int { return (self as NSError).code }
var domain: String { return (self as NSError).domain }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)