0

更新到 Xcode 11.4 后,我开始收到此错误

无法为表达式生成诊断,请提交错误报告

上:

let provider = MoyaProvider<EndPoint>(requestClosure: requestClosure)

我更新了 Moya,但看起来不是问题。在以前的 Xcode 版本上运行良好。

完整代码:

 let requestClosure: MoyaProvider.RequestClosure = {
            [unowned self] (endpoint: Endpoint, done: @escaping MoyaProvider.RequestResultClosure) in

       guard let request = try? endpoint.urlRequest() else { return }

       self.authenticator.authenticate(request, done: { (request) in
                done(.success(request))
       })
 }
 provider = MoyaProvider<EndPoint>(requestClosure: requestClosure
4

2 回答 2

1

我发现了这个问题,Xcode 11.4 编译问题在涉及到optionalsgenerics.

Moya版本和Swift版本没有改变。

泛型的问题:

let requestClosure: MoyaProvider<EndPoint>.RequestClosure 必须在闭包中显式定义类型,这是有道理的,但不是 Xcode 11.4 版之前的要求

let requestClosure: MoyaProvider<EndPoint>.RequestClosure = {
            [unowned self] (endpoint: Endpoint, done: @escaping MoyaProvider.RequestResultClosure) in

       guard let request = try? endpoint.urlRequest() else { return }

       self.authenticator.authenticate(request, done: { (request) in
          done(.success(request))
      })
}
provider = MoyaProvider<EndPoint>(requestClosure: requestClosure
于 2020-04-12T16:45:39.643 回答
0

对我来说,我收到了这个错误,因为我的一个属性是Error类型的,我正在为它分配一个LocalizedError类型的值。将属性类型更改为LocalizedError解决了该问题。

于 2021-06-23T09:15:06.997 回答