2016-08-10 65 views
1

我試圖讓天氣使用此代碼使用Openweathermap城市空間名稱:獲取城市的天氣與包含使用Openweathermap

func getWeatherByCity(city: String) { 
    if let weatherRequestURL = NSURL(string: "\(openWeatherMapBaseURL)?APPID=\(openWeatherMapAPIKey)&q=\(city)") { 
     getWeather(weatherRequestURL: weatherRequestURL) 
    } 
} 

(全教程http://www.globalnerdy.com/2016/04/02/how-to-build-an-ios-weather-app-in-swift-part-1-a-very-bare-bones-weather-app/

的API適用於不含空格的城市名稱。

即使在主頁http://openweathermap.org/,尋找舊金山沒有結果。

這裏缺少什麼?

回答

2

繼@SaintThread建議,去掉空格被替換的出現做帶空字符串的空格:

containsPlacemark.locality?.replacingOccurrences(of: " ", with: "") 

但是在聯繫支持團隊後,他們建議使用下劃線而不是空格。這裏是他們的電子郵件摘錄:

事實上,空間支持被打破。請用 下劃線替換它們。事實上,您可以將「舊金山」 拼寫爲「SanFrancisco」,但這種方式可能會在某些特定城市導致意想不到的結果,「San_Francisco」是最好的形式。

所以處理這個正確的方法是:

containsPlacemark.locality?.replacingOccurrences(of: " ", with: "_") 
+0

如果我的答案幫助你,請將它標記爲正確的,謝謝:) –

0

則需要通過+符號替換你的城市名稱空間

let string = "San Francisco" 
let replaced = (string as NSString).stringByReplacingOccurrencesOfString(" ", withString: "+") 

enter image description here 如果你看一下地址欄 - 它取代的空間與加上它本身。

對於這個網站,我們需要刪除空格: enter image description here

不知道爲什麼他們聲稱他們的搜索引擎是非常靈活的:)

+0

我用'返回containsPlacemark.locality .replacingOccurrences?(作者: 「」 與 「」)',它的清潔 – Carpsen90

+0

是的,但是當想法替換爲「+」時,您將替換爲空白空間 – Almazini

+0

不,該+號不能解決問題 – Carpsen90

相關問題