2016-03-22 2 views
9

Я обновил до последней версии Xcode 7.3 с выпуском iOS 9.3 & OSX 10.11.4 (включая Swift 2.2) вчера.Неразрешенный идентификатор - SKErrorPaymentCancelled

Когда я создаю свое приложение, я получаю сообщение об ошибке Use of unresolved identifier 'SKErrorPaymentCancelled', которое я использую, чтобы проверить, отменил ли пользователь платеж. Я не делаю с ним ничего особенного, просто запишите его (как видно ниже).

private func failedTransaction(transaction: SKPaymentTransaction) { 
    print("failedTransaction...") 
    if transaction.error!.code == SKErrorPaymentCancelled { 
     print("Transaction Cancelled: \(transaction.error!.localizedDescription)") 
    } 
    else { 
     print("Transaction Error: \(transaction.error!.localizedDescription)") 
    } 
    SKPaymentQueue.defaultQueue().finishTransaction(transaction) 
} 

Я ничего не могу найти в сводном журнале Swift 2.2, в котором говорится, что что-либо в StoreKit было изменено. Это отлично работало, прежде чем я обновился.

Кто-нибудь еще видит эту проблему?

ответ

32

Постоянная SKErrorPaymentCancelled была удалена из SDK с iOS 9.3. Вместо этого используйте перечисление SKErrorCode.PaymentCancelled.

Для получения дополнительной информации см StoreKit Changes for Swift странице iOS 9.3 API Diffs и мой каноническое Q & на пост Use of unresolved identifier when using StoreKit constants with iOS 9.3/Xcode 7.3.

+0

Имеется ли документация об этом где-то, что я пропустил? Они переместили все константы ошибок StoreKit в SKErrorCode? – mattdonders

+0

@mattdonders Проверьте журнал изменений StoreKit для iOS 9.3 SDK: https://developer.apple.com/library/ios/releasenotes/General/iOS93APIDiffs/Swift/StoreKit.html – JAL

+0

О, спасибо, определенно пропустили это. Еще один вопрос, чтобы следить за этим тогда (если вы знаете). Какое свойство транзакции можно проверить с помощью SKErrorCode? Мой предыдущий код (исправленный сверху) - это 'transaction.error! .Code == SKErrorCode.PaymentCancelled', но теперь я получаю' Невозможно преобразовать значение типа 'SKErrorCode' в ожидаемый тип аргумента 'Int'' – mattdonders

 Смежные вопросы

  • Нет связанных вопросов^_^