session.dataTask 调用错误中的 Swift5 额外参数“completionHandler”
Posted
技术标签:
【中文标题】session.dataTask 调用错误中的 Swift5 额外参数“completionHandler”【英文标题】:Swift5 Extra argument 'completionHandler' in call error with session.dataTask 【发布时间】:2020-08-20 07:50:06 【问题描述】:我正在尝试制作一些天气应用程序 但是有一些问题 错误是“调用中的额外参数'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?)
【问题讨论】:
请张贴代码...而不是图片... 【参考方案1】:检查以下代码:
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
.
【讨论】:
以上是关于session.dataTask 调用错误中的 Swift5 额外参数“completionHandler”的主要内容,如果未能解决你的问题,请参考以下文章
尽管 Laravel 中的令牌正确,Ajax 调用仍返回 419 错误