无法将“String”类型的值转换为预期的参数类型“URLSession”
Posted
技术标签:
【中文标题】无法将“String”类型的值转换为预期的参数类型“URLSession”【英文标题】:Cannot convert value of type 'String' to expected argument type 'URLSession' 【发布时间】:2019-01-28 18:07:31 【问题描述】:我使用 Alamofire 4.0、Swift 4.2 和 Xcode 10.2 来请求 Http Api 我有 url 常量:
let weatherUrl = "http://api.openweathermap.org/data/2.5/weather"
及功能:
func getWeatherData(url: String, parameters: [String : String])
Alamofire.Request(url, parameters: parameters).responseJSON
response in
getWeatherData(url: weatherUrl, parameters: params)
Xcode 通知我:“无法将 'String' 类型的值转换为预期的参数类型 'URLSession'”。
有什么问题?
【问题讨论】:
您的参数之一应该是 [URL : String] 还是 [String: URL] ?您还定义了 url:String ,应该是 url: URL 哪一行?哪个变量?在您的问题中提供详细信息。 @rmaddy 在行:Alamofire.Request(url, method: .get, parameters: parameters).responseJSON。我已经更新了问题的图片! 错误很明显。对Alamofire.Request
的调用中的第一个参数需要URL
,而不是String
。
@rmaddy 谢谢!我修好了它。 :)
【参考方案1】:
您可以尝试使用以下代码。因为 URL 的类型是 URLConvertible。
让 url = URL(string: myURLString)
【讨论】:
【参考方案2】:您使用的是Request
,它是一种类型,而不是request
,这是您正在寻找的方法。
【讨论】:
以上是关于无法将“String”类型的值转换为预期的参数类型“URLSession”的主要内容,如果未能解决你的问题,请参考以下文章
“无法将 '(String) -> Bool' 类型的值转换为预期参数”
无法将 String 类型的值转换为预期的参数类型 NSManagedObject
无法将“String”类型的值转换为预期的参数类型“URLSession”
如何在此 for 循环中修复'无法将'String'类型的值转换为预期的参数类型'Int'
无法将“NSMutableDictionary”类型的值转换为预期的参数类型“[String: AnyObject]?”