在这种情况下,“ CompletionHandler”对于类型查找是不明确的

时间:2018-09-18 03:48:34

标签: ios swift swift4 xcode10 swift4.2

我最近加入了一个新项目,并开始使用iOS应用程序代码库。但是,使用最新的Xcode 10,该代码将不再编译。

protocol NetworkClientType {
  associatedtype CompletionHandler
  static func intoRequest(_ url: URL?) -> URLRequest?
}

extension NetworkClientType {

  typealias CompletionHandler = (Data?, URLResponse?, Error?) -> Void

  static func intoIncompleteURLSessionDataTask(_ request: URLRequest) -> (CompletionHandler) -> URLSessionDataTask {
    return { completion in URLSession(configuration: .default).dataTask(with: request, completionHandler: completion) }
  }
}

然后,在第10行(static func intoIncompleteURLSessionDataTask...)上,编译器错误显示在这种情况下,'CompletionHandler'对于类型查找是不明确的

有人知道如何解决这个问题吗?我四处搜寻,找不到有效的解决方案。

1 个答案:

答案 0 :(得分:2)

更改

extension NetworkClientType {
  typealias CompletionHandler = (Data?, URLResponse?, Error?) -> Void

extension NetworkClientType 
    where CompletionHandler == (Data?, URLResponse?, Error?) -> Void {