未解析的标识符 - SKErrorPaymentCancelled [重复]
Posted
技术标签:
【中文标题】未解析的标识符 - SKErrorPaymentCancelled [重复]【英文标题】:Unresolved Identifier - SKErrorPaymentCancelled [duplicate] 【发布时间】:2016-03-22 14:11:13 【问题描述】:我昨天更新到最新版本的 Xcode 7.3,发布了 ios 9.3 和 OSX 10.11.4(包括 Swift 2.2)。
当我构建我的应用程序时,我收到一条错误消息
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 中的任何内容已更改的内容。这在我更新之前运行良好。
还有其他人看到这个问题吗?
【问题讨论】:
【参考方案1】:自 iOS 9.3 起,常量 SKErrorPaymentCancelled
已从 SDK 中删除。相反,请使用 SKErrorCode.PaymentCancelled
枚举。
有关更多信息,请参阅iOS 9.3 API Diffs 的StoreKit Changes for Swift 页面和我的规范问答帖子Use of unresolved identifier when using StoreKit constants with iOS 9.3/Xcode 7.3。
【讨论】:
我错过了这方面的文档吗?他们是否将所有 StoreKit 错误常量移至 SKErrorCode?span> @mattdonders 查看 iOS 9.3 SDK 的 StoreKit 更新日志:developer.apple.com/library/ios/releasenotes/General/… 哦,谢谢,绝对错过了。那么还有一个问题要跟进(如果你知道的话)。可以根据 SKErrorCode 检查交易的哪些属性?我以前的代码(从上面固定)是transaction.error!.code == SKErrorCode.PaymentCancelled
,但现在我得到Cannot convert value of type 'SKErrorCode' to expected argument type 'Int'
@mattdonders 使用.rawValue
从枚举中获取Int
值。
太棒了 - 非常感谢您的帮助。时间一过就会接受。以上是关于未解析的标识符 - SKErrorPaymentCancelled [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用未解析的标识符 'json' (Swift 3) (Alamofire)