【问题标题】:Return Callback inside Callback Swift在回调 Swift 中返回回调
【发布时间】:2021-01-26 00:53:43
【问题描述】:

我有一个使用完成返回响应的 SDK 集成,但我想创建另一个完成以返回回调响应,但我不知道如何。

这是我的尝试

func validatingProcces(completion: ((Any)?)->()) {
    let conekta = Conekta()
    conekta.delegate = self
    conekta.publicKey = "key_KJysdbf6PotS2ut2"
    conekta.collectDevice()
    let card = conekta.card()
    let token = conekta.token()
    
    card!.setNumber(String(cardToSave!.cardNumber), name: cardToSave!.fullName, cvc: String(cardToSave!.cvc), expMonth: String(cardToSave!.month), expYear: String(cardToSave!.year))

    token!.card = card
    
   

    token!.create(success: { (data) -> Void in
        completion(data as Any)
        
    }, andError: { (error) -> Void in
        print(error as Any)
        completion(error as Any)
    })
    
}

我有以下错误:

转义闭包捕获非转义参数“完成”

还有:

  1. 参数“完成”是隐式非转义的
  2. 在这里拍摄

附言。您将在此处找到 SDK 集成: https://github.com/conekta/conekta-ios

非常感谢!

【问题讨论】:

  • 我不会将此作为答案发布,因为我不确定这是否是您面临的问题,但您是否尝试过completion: @escaping ((Any)?)->()
  • 谢谢,问题解决了

标签: swift callback swift5 completion


【解决方案1】:

从源代码看来,您可以像这样进行回调:

completion: @escaping (Any?, Error?) -> ()

并传入 api 回调的结果,以便您可以像这样在其他地方处理它

token!.create(success: { data in
    completion(data, nil)
}, andError: { error in
    print(error as Any)
    completion(nil, error)
})

让我知道这是否有效

【讨论】:

    猜你喜欢
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多