无法将“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]?”

Swift:无法将类型“[String:DayData]”的值转换为预期的参数类型“AnyObject?”