从类型为((_)的throwing函数->()到无效类型为'(CallResult)-> Void'的无效转换

时间:2018-07-11 20:07:00

标签: swift

具有以下代码块:

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)->无效)抛出{

我遇到麻烦的是,使用同一方法的其他调用都没有问题,因此我还没有确定到底是什么使此特殊块特别重要。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

应该坐在上面更长的时间。解决方法是用do / catch包装lambda。

相关问题