具有以下代码块:
do {
try call.receiveMessage { callResult in
if let msg = try callResult.resultData {
let result = try decoder.decode(valueType, from: msg)
}
// other stuff
} catch let error {
if let callback = self.onError {
callback(error)
}
}
由于try call.receieveMessage
处的错误而无法编译:
从类型为((_)的throws函数->()到无效类型的'(CallResult)-> Void'的无效转换
我正在调用的函数确实发生了签名更改:
来自:public func receiveMessage(完成:@转义(数据?)throws-> Void)throws { 到:公共功能接收消息(完成:@转义(CallResult)->无效)抛出{
我遇到麻烦的是,使用同一方法的其他调用都没有问题,因此我还没有确定到底是什么使此特殊块特别重要。
任何建议将不胜感激。
答案 0 :(得分:0)
应该坐在上面更长的时间。解决方法是用do / catch包装lambda。