Return回调内回调Swift
Return Callback inside Callback Swift
我有一个 SDK 集成,它 return 是一个使用完成的响应,但我想为 return 回调响应创建另一个完成,但我不知道如何实现。
这是我的尝试
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)
})
}
我有以下错误:
Escaping closure captures non-escaping parameter 'completion'
还有:
- Parameter 'completion' is implicitly non-escaping
- Captured here
Ps。您将在此处找到 SDK 集成:
https://github.com/conekta/conekta-ios
非常感谢!
从源代码看来,您可以像这样进行回调:
completion: @escaping (Any?, Error?) -> ()
并传入 api 回调的结果,以便您可以像这样在其他地方处理它
token!.create(success: { data in
completion(data, nil)
}, andError: { error in
print(error as Any)
completion(nil, error)
})
让我知道这是否有效
我有一个 SDK 集成,它 return 是一个使用完成的响应,但我想为 return 回调响应创建另一个完成,但我不知道如何实现。
这是我的尝试
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)
})
}
我有以下错误:
Escaping closure captures non-escaping parameter 'completion'
还有:
- Parameter 'completion' is implicitly non-escaping
- Captured here
Ps。您将在此处找到 SDK 集成: https://github.com/conekta/conekta-ios
非常感谢!
从源代码看来,您可以像这样进行回调:
completion: @escaping (Any?, Error?) -> ()
并传入 api 回调的结果,以便您可以像这样在其他地方处理它
token!.create(success: { data in
completion(data, nil)
}, andError: { error in
print(error as Any)
completion(nil, error)
})
让我知道这是否有效