Ich arbeite an einer App, in der die API über NSURLSession aufgerufen wird. Wenn die Api richtig es funktioniert, ist kein Problem, aber wenn keine Daten aufgrund irgendeinen Fehler empfangen wird dann nach Serialisierung wirft es Fehler, aber der sonst Block für sie nieTry Block funktioniert nicht richtig
let task = session.dataTaskWithRequest(request) { (let data, let response, let error) in
do {
guard let data:NSData = data , let response: NSURLResponse = response where error == nil else {
throw error!
}
guard let json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? NSDictionary else{
print("Serialization failed") //This block never executes even if the Serialization Fails
throw JSONError.ConversionFailed
}
guard json.valueForKey("success") != nil else {
return
}
self.apidata = json
dispatch_async(dispatch_get_main_queue()){
self.tableView.reloadData()
}
print(json.valueForKey("success")!)
}
catch let error as JSONError{
self.showalertview(error.rawValue)
print(error.rawValue)
} catch let error as NSError{
print(error.debugDescription)
}
}
task.resume()
genannt Was ist hier falsch mache mir ?? ?
Welchen 'else' Block erwarten Sie zu laufen? – dasblinkenlight
@dasblinkenlight i dies erwarten zu laufen, wenn Serialisierung sonst ausfällt { print („Serialisierung fehlgeschlagen“) // Dieser Block führt nie, selbst wenn die Serialisierung throw schlägt JSONError.ConversionFailed } –
ich die dritte Schutzblock vermuten genannt wird wenn es keine Daten gibt –