###前提・実現したいこと
swift初心者です。
Swift3,Xcode8.1です。
Weather Hacksを使って天気データを取得しようとしています。
http://weather.livedoor.com/weather_hacks/webservice
都市がIDと紐付いていたため、csvファイルを作って入力された都市名からIDを割り出したいです。
検索された文字列とCity列に同じものが来るまで繰り返し処理をして、
同じものがあったらID列の数字を割り出そうとしています。
csvファイル
City,ID
東京,130010
横浜,140010
以下、同様に都市名とIDが続きます。
###発生している問題・エラーメッセージ
いろいろと検討した結果、繰り返し処理がわからなくなってしまいました。
###該当のソースコード
@IBOutlet weak var searchCity: UISearchBar! @IBOutlet weak var tableView: UITableView! //サーチボタンクリック時 func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { //キーボードを閉じる view.endEditing(true) //デバックエリアに出力 print(searchBar.text!) if let searchWord = searchBar.text { //入力されたら都市を検索 searchCity(keyword: searchWord) } } func searchCity(keyword : String){ var csvArray:[String] = [] //CSVファイルのパスを取得する let csvPath = Bundle.main.path(forResource: "City", ofType: "csv") //CSVファイルのデータを取得する let csvData = try? NSString(contentsOfFile:csvPath!, encoding:String.Encoding.utf8.rawValue) //改行区切りでデータを分割して配列に格納する csvArray = (csvData?.components(separatedBy: "\n"))! do{ //検索文字とcsvファイルの1列目が該当するか確認を繰り返す for i in 1 ...2 where csvArray[0] == searchWord { var id:String = csvPath [i][1] let url = URL(string: "http://weather.livedoor.com/forecast/webservice/json/v1?city=\(id)") // } } catch { //エラー処理 print("エラー") } //ダウンロード開始 task.resume() }
###試したこと
上記の通りfor文を用いて取得できるか考えたのですが、
swift3に対応したfor文がよくわからず困っています。
エラーは
for i in 1 ...2 where csvArray[0] == searchWord {
var id:String = csvPath [i][1]
で出ています。
拙文で恐縮ですが、ご教授のほどお願い致します。