Новое в Xcode 8 beta 4, NSError
подключено к типу протокола Swift Error
. Это влияет на StoreKit при работе с неудачными SKPaymentTransaction
s. Вы должны убедиться, что ошибка не произошла, потому что транзакция была отменена, чтобы узнать, показывать ли пользователю сообщение об ошибке. Вы делаете это, исследуя ошибку code
. Но вместо Error
Error
не существует 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
не является членом.