私はウェブからデータをダウンロードして練習している「My Weather app」を作りました。しかし、静的URLでテストするとエラーが発生します。理由はわかりません。データダウンロード中(JSON)が動作しません:オプション値をアンラッピングしている間に予期せず見つからない
私の天気モデルの一部:
init(location: String, temp: Double, icon: String) {
self._location = location
self._temp = temp
self._icon = icon
url = "http://api.openweathermap.org/data/2.5/forecast?lat=52.379189&lon=4.899431&APPID=28c704926d4f9131886a0bce5d2425d9"
}
func downloadWeatherDetails(completed: DownloadComplete) {
let weatherUrl = NSURL(string: url)!
Alamofire.request(.GET, weatherUrl).responseJSON { response in
let result = response.result
print(result.value.debugDescription)
}
}
私のViewControllerのパート:
var weather: Weather!
override func viewDidLoad() {
super.viewDidLoad()
weather.downloadWeatherDetails() {() ->() in
//This will be called after download is done
}
}
私の '定数' ファイル:私はとき
typealias DownloadComplete =() ->()
URLが機能していますブラウザでテストするので、それは重要ではありません。私は何がうまくいかないのか分からない。誰か助けてくれますか?
ありがとうございます!
「var weather」はどこに設定されていますか?変数をどこかに代入しないと、変数は 'nil' – vadian
ViewControllerに設定されます:var weather:Weather!それは間違った方法ですか? – debbiedowner
私の最初の推測では、あなたはApp Transport Securityの被害者です。 info.plistに例外を入れましたか? Alamofireコールにエラーコンポーネントを追加すると、ブレークポイントを追加して調べることができるはずです。「App Transport Securityポリシーではセキュアな接続が必要なため、リソースをロードできませんでした。 – brandonscript