在回调Swift中返回回调

在回调Swift中返回回调,swift,callback,swift5,completion,Swift,Callback,Swift5,Completion,我有一个SDK集成,它使用完成返回响应,但我想创建另一个完成来返回回调响应,但我不知道如何创建 这是我的尝试 func validatingProcces(completion: ((Any)?)->()) { let conekta = Conekta() conekta.delegate = self conekta.publicKey = "key_KJysdbf6PotS2ut2" conekta.collectDevice()

我有一个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)
    })
    
}
我有以下错误:

转义闭包捕获非转义参数“completion”

而且:

  • 参数“completion”隐式不转义
  • 在这里捕获
  • 另外,您可以在这里找到SDK集成:


    非常感谢你

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

    completion: @escaping (Any?, Error?) -> ()
    
    并传入api回调的结果,以便您可以像这样在其他地方处理它

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

    让我知道这是否有效

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