gpt4 book ai didi

ios - strip iOS 集成中的信用卡.validate CardReturningError(错误)

转载 作者:可可西里 更新时间:2023-11-01 01:05:38 24 4
gpt4 key购买 nike

我正在尝试使用 swift 将 Stripe 集成到 iOS 应用程序中。我不断从该行收到这些错误:creditCard.validateCardReturningError(&error)错误 1:'_' 不可转换为 '() throws ->()'错误 2:<> 不可转换为“BooleanType”

  var error: NSError?
if (creditCard.validateCardReturningError(&error)){
var stripeError: NSError!
Stripe.createTokenWithCard(creditCard, completion: { (token, stripeError) -> Void in
if (stripeError != nil){
println("there is error");
}

最佳答案

从您收到的错误消息来看,听起来您正在使用新的 Xcode 7 beta 以及新版本的 Swift。这个新版本最有趣和最有争议的变化之一是 Apple 修改了错误处理的工作方式。实际上,Apple 现在已经通过 ErrorType 向 Swift 语言添加了一流的异常,并且能够在类型级别标记可能在执行过程中引发错误的函数。因此,您可以期望开始看到具有以下签名的函数:

func foo() throws -> Bar 

这表示函数 foo 将抛出异常或返回 Bar 类型的对象。

您处理此类函数的方式是通过三个新关键字:do、try 和 catch(您可能熟悉许多其他流行语言中的 try-catch 习语)。实际上,目的是将可能异常的代码块包装在一个 do 中,以标记对可以用 try 抛出异常的函数的特定调用,最后,使用 catch 语句指示在发生异常时应该做什么具体异常(exception)情况。

在您的情况下,以下内容的修改版本应该有效:

do {
try creditCard.validateCardReturningError()
STPAPIClient.sharedClient().createTokenWithCard(
creditCard,
completion: { (token: STPToken?, stripeError: NSError?) -> Void in
self.createBackendChargeWithToken(token!, completion: completion)
})
} catch {
println("There was an error.")
}

请注意,Stripe 尚未正式发布测试版的新版 iOS SDK,因此关于新异常类型的信息还不多,但我会密切关注 Github 存储库以获取任何更新。

无论如何,有关新的 Swift 错误处理的更多信息,我强烈推荐 Big Nerd Ranch 上的博文:https://www.bignerdranch.com/blog/error-handling-in-swift-2/ .如果您还有其他问题,请告诉我!

关于ios - strip iOS 集成中的信用卡.validate CardReturningError(错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31235860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com