swift - session.dataTask 调用错误中的 Swift5 额外参数“completionHandler”
问题描述
我正在尝试制作一些天气应用程序但有一些问题错误是“调用中的额外参数'completionHandler'”我应该怎么做才能解决它? 在此处输入图像描述
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
您需要传递 anURLResponse
而不是URLSession
tohandle
并且您不必编写参数名称,因为您将handle
函数作为参数传递给dataTask
.
推荐阅读
- python-3.x - 从 Google colab notebook 运行 java 命令
- python-3.x - 如何在对象检测 API 中使用 GCP 视觉训练模型
- html - SCSS 背景颜色未显示(angular2+ typescript)
- python - Python正则表达式在文本字符串中查找算术表达式
- java - java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 在构建正常的 struts 登录应用程序
- charts - 如何创建在 Tableau 中对齐的气泡图?
- nosql - 使用并非所有项目共享的属性的全球二级索引?
- javascript - 为什么 TypeScript 中未定义剩余参数?
- ansible - Ansible:如何为序列添加延迟?
- python - 列“post_id”不能为空