如何解决Swift5额外参数'completionHandler'在session.dataTask的调用错误中
我正在尝试制作一个天气应用 但是有一些问题 错误是“调用中的额外参数'completionHandler'” 我应该怎么解决呢? enter image description here
import Foundation
struct WeatherManager {
let weatherURL = "http://api.openweathermap.org/data/2.5/weather?APPID=sdfkjskfjsfjskflskflsjklfjf&units=metric"
func fetchWeather(cityName: String) {
let urlStirng = "\(weatherURL)&q=\(cityName)"
performRequest(urlString: urlStirng)
}
func performRequest(urlString: String) {
//1. Create a URL
if let url = URL(string: urlString) {
//2. Create a URL Session
let session = URLSession(configuration: .default)
//3. Give the session a task
let task = session.dataTask(with: url,completionHandler: handle(data:response:error:))
//4. Start the task
task.resume()
}
}
func handle(data: Data?,response: URLSession?,error: Error?) {
}
}
解决方法
检查以下代码:
func performRequest(urlString: String) {
//1. Create a URL
if let url = URL(string: urlString) {
//2. Create a URL Session
let session = URLSession(configuration: .default)
//3. Give the session a task
let task = session.dataTask(with: url,completionHandler: handle)
//4. Start the task
task.resume()
}
}
func handle(data: Data?,response: URLResponse?,error: Error?) {
}
对于response
,您需要将URLResponse
而不是URLSession
传递给handle
,并且您不必写参数名,因为您要传递的是handle
用作dataTask
的参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。