このサイトを参考にOpenWetherMapからデータを取得しようと考えています。
Swift
1 func openweathermap(){ 2 3 let OpenWeatherMapUrl = "http://api.openweathermap.org/data/2.5/weather?q=Hachioji&appid=568cc88fc88a619182325a1338854669" 4 // openweathermapApiを用いて各情報を取得 5 let url = NSURL(string: OpenWeatherMapUrl)! 6 let task = URLSession.shared.dataTask(with: url as URL, completionHandler: {data, response, error in 7 // リソースの取得が終わると、ここに書いた処理が実行 8 let json = JSON(data: data!) 9 //print(data) 10 //print("aaa") 11 }) 12 task.resume() 13 }
この部分なのですが、JSONを代入する部分でJSONが使えないらしくエラーになってしまいます。
dataをそのままprint関数で書き出そうとしたんですが処理落ちしてしまいました。
Swiftのバージョンは4でやっています。どうしたらいいでしょうか
SwiftyJsonというライブラリを作っているのはわかって、ライブラリを使わずに試してみようと思い書いてみたのですが、nullになって落ちてしまいます。
Swift
1func openweathermap(){ 2 3 let OpenWeatherMapUrl = "http://api.openweathermap.org/data/2.5/weather?q=Hachioji&appid=568cc88fc88a619182325a1338854669" 4 // openweathermapApiを用いて各情報を取得 5 let url = NSURL(string: OpenWeatherMapUrl)! 6 let task = URLSession.shared.dataTask(with: url as URL, completionHandler: {data, response, error in 7 // リソースの取得が終わると、ここに書いた処理が実行 8 let encoder = JSONEncoder() 9 do { 10 if let d = data { 11 let data = try encoder.encode(d) 12 let jsonstr:String = String(data: data, encoding: .utf8)! 13 print(jsonstr) 14 } 15 } catch { 16 print(error.localizedDescription) 17 } 18 }) 19 task.resume() 20 }
接続先がHTTPのようですがATSについては適切に設定されていますか?
回答1件
あなたの回答
tips
プレビュー