gpt4 book ai didi

ios - URLSession实例方法 `downloadTask`错误

转载 作者:行者123 更新时间:2023-11-28 06:24:52 25 4
gpt4 key购买 nike

我已经更新了 Advanced NSOperations将示例应用程序添加到 Swift 3。唯一剩下的构建错误是来自 DownloadEarthquakesOperation 类的这段代码。

    let url = URL(string: "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_month.geojson")!

let task = URLSession.shared.downloadTask(with: url) { (url, response, error) in
self.downloadFinished(url, response: response, error: error)
}

错误如下:

Cannot invoke 'downloadTask' with an argument list of type '(with: URL, (URL?, URLResponse?, Error?) -> Void)'

Expected an argument list of type '(with: URL, completionHandler: @escaping (URL?, URLResponse?, Error?) -> Void)'

这个错误对我来说没有任何意义,因为 @escaping 属性不应该影响调用站点。有什么想法吗?

最佳答案

一行闭包通常会导致问题,因为编译器试图从闭包中的一行返回的任何内容推断闭包的返回类型。理论上它应该能够推断出正确的类型(因为 downloadFinished 返回 Void),但看起来在 AdvancedNSOperations< 的初始转换期间有很多问题 它只是变得困惑了。您可以通过添加明确的 return 语句来消除该警告:

let url = URL(string: "http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_month.geojson")!

let task = URLSession.shared.downloadTask(with: url) { url, response, error in
self.downloadFinished(url, response: response, error: error)
return
}

坦率地说,一旦我完成转换(解决所有其他问题),我就能够返回并删除那个 return 语句,它不再是一个问题。

关于ios - URLSession实例方法 `downloadTask`错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42263547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com