2016-04-01 5 views
0

Ich mache eine "Meine Wetter App", in der ich mit dem Herunterladen von Daten aus dem Internet üben. Aber ich erhalte einen Fehler beim Testen mit einer statischen URL, und ich weiß nicht warum.Herunterladen von Daten (JSON) funktioniert nicht: unerwartet gefunden Null beim Entpacken ein Optionaler Wert

Teil meines Wetter Modell:

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) 
     } 
    } 

Teil meines Viewcontroller:

var weather: Weather! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     weather.downloadWeatherDetails() {() ->() in 
      //This will be called after download is done 
     } 
    } 

Meines 'Konstanten' file:

typealias DownloadComplete =() ->() 

Die URL funktioniert, wenn ich Testen Sie es im Browser, das ist nicht der Punkt. Ich weiß nicht, was schief läuft. Könnte mir jemand helfen?

Vielen Dank!

+0

Wo ist 'var weather' eingestellt? Ohne einen Wert irgendwo zuzuweisen, ist die Variable 'nil' – vadian

+0

Sie ist im ViewController eingestellt: var Wetter: Wetter! Ist das der falsche Weg? – debbiedowner

+0

Meine erste Vermutung ist, dass Sie ein Opfer von App Transport Security sind. Haben Sie in Ihrer info.plist eine Ausnahme gemacht? Wenn Sie dem Alamofire-Aufruf eine Fehlerkomponente hinzufügen, sollten Sie in der Lage sein, einen Haltepunkt hinzuzufügen und zu prüfen. Suchen Sie nach "Die Ressource konnte nicht geladen werden, da die App-Transportsicherheitsrichtlinie die Verwendung einer sicheren Verbindung erfordert." – brandonscript

Antwort

1

Sie benötigen eine Instanz der Wetterklasse.

var weather = Weather() 
+0

Danke, das hat funktioniert! :-) – debbiedowner

+0

@DidevanBerkel awesome - kannst du antworten? –

Verwandte Themen