Ich arbeitete an meiner App und es funktioniert gut auf Simulator. Während wir das auf meinem iPhone ausprobiert haben, stürzte es mit dem Unwrapping-Fehler ab. Irgendwelche Ideen? Thx error screenshotAlamofire, schwerwiegender Fehler: unerwartet gefunden Null beim Entpacken ein optionaler Wert
class connection{
var url: String = ""
func connectServer(url:String,completionHandler: (jsonResponse: JSON) ->()) {
Alamofire.request(.GET, url)
.responseJSON { (response) in
let json = JSON(response.result.value!)
// print(json) // works fine
completionHandler(jsonResponse: json)
}
}
}
func loadData(){
let cn = connection()
let url = "http://localhost:3000/api/v1/patients/user_id/"+userID
// Call function to connect server by API with specific url
cn.connectServer(url) { (jsonResponse) in
//Parsing JSON file
for item in jsonResponse["patients"].arrayValue{
//pasring json
}
}}
Der Grund dafür ist, dass '' response.result.value ist 'nil'!. Höchstwahrscheinlich ist 'localhost' nicht auf dem Gerät verfügbar. Ich vermute, dass Alamofire im Fehlerfall auch ein Fehlerobjekt zurückgibt. Überprüfen Sie das immer zuerst! – vadian
Sie sollten immer die Möglichkeit in Erwägung ziehen, dass ein optionales NULL sein könnte, und schreiben Sie daher die Fehlerbehandlungslogik, um diesen Fall korrekt zu behandeln - [siehe dieses Q & A für den sicheren Umgang mit Optionals.] (Http://stackoverflow.com/questions/ 32170456/what-does-fatal-error-unerwartet-found-nil-while-unwrapping-an-optional-valuable) – Hamish
@vadian Sie haben Recht. Danke für Ihre Hilfe. Ich habe versucht, die Fehlermeldung auszudrucken und sagte, dass sie keine Verbindung zum Server herstellen kann. Gibt es eine Lösung, um meine App auf dem iPhone gut arbeiten zu lassen, ich meine noch Daten von localhost zu holen? –