2016-04-01 7 views
0

私はウェブからデータをダウンロードして練習している「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が機能していますブラウザでテストするので、それは重要ではありません。私は何がうまくいかないのか分からない。誰か助けてくれますか?

ありがとうございます!

+0

「var weather」はどこに設定されていますか?変数をどこかに代入しないと、変数は 'nil' – vadian

+0

ViewControllerに設定されます:var weather:Weather!それは間違った方法ですか? – debbiedowner

+0

私の最初の推測では、あなたはApp Transport Securityの被害者です。 info.plistに例外を入れましたか? Alamofireコールにエラーコンポーネントを追加すると、ブレークポイントを追加して調べることができるはずです。「App Transport Securityポリシーではセキュアな接続が必要なため、リソースをロードできませんでした。 – brandonscript

答えて

1

Weatherクラスのインスタンスが必要です。

var weather = Weather() 
+0

ありがとう、それは働いた!:-) – debbiedowner

+0

@DidevanBerkel素晴らしい - あなたは答えをマークできますか? –

関連する問題