我正在尝试使用此代码使用Openweathermap获取城市的天气:
func getWeatherByCity(city: String) {
if let weatherRequestURL = NSURL(string: "\(openWeatherMapBaseURL)?APPID=\(openWeatherMapAPIKey)&q=\(city)") {
getWeather(weatherRequestURL: weatherRequestURL)
}
}
api适用于不包含空格的城市名称。
即使在主页http://openweathermap.org/上,寻找旧金山也没有结果。
这里缺少什么?
答案 0 :(得分:4)
您需要用 + 符号
替换城市名称中的空格let string = "San Francisco"
let replaced = (string as NSString).stringByReplacingOccurrencesOfString(" ", withString: "+")
不确定为什么他们声称他们的搜索引擎非常灵活:)
答案 1 :(得分:2)
遵循@SaintThread建议,删除空格是通过用空字符串替换空格的出现来完成的:
containsPlacemark.locality?.replacingOccurrences(of: " ", with: "")
但在与支持团队联系后,他们建议使用下划线而不是空格。以下是他们的电子邮件的摘录:
事实上,空间支持被打破了。请替换它们 下划线。确实,你可以省略拼写“旧金山”的空格 作为“SanFrancisco”,但这种方式会导致意想不到的结果 一些特定的城市,“San_Francisco”是最好的形式。
因此,处理此问题的正确方法如下:
containsPlacemark.locality?.replacingOccurrences(of: " ", with: "_")
答案 2 :(得分:1)
尝试删除空格,San Francisco
变为SanFrancisco
。在http://openweathermap.org/它可以工作。
答案 3 :(得分:0)
今天,我遇到了同样的问题,并能够按照以下步骤进行修复:
city = city.split(' ').join('+');