Ich versuche, eine URLSessionAnforderung in Swift 3 auszuführen . Ich führe diese Aktion in einer separaten Funktion aus (um den Code für GET und POST nicht separat zu schreiben) URLSessionDataTaskund gebe den Erfolg und Misserfolg bei Abschlüssen zurück und behandle ihn. So ähnlich wie-
let task = URLSession.shared.dataTask(with: request) { (data, uRLResponse, responseError) in
DispatchQueue.main.async {
var httpResponse = uRLResponse as! HTTPURLResponse
if responseError != nil && httpResponse.statusCode == 200{
successHandler(data!)
}else{
if(responseError == nil){
//Trying to achieve something like below 2 lines
//Following line throws an error soo its not possible
//var errorTemp = Error(domain:"", code:httpResponse.statusCode, userInfo:nil)
//failureHandler(errorTemp)
}else{
failureHandler(responseError!)
}
}
}
}
Ich möchte die Fehlerbedingung in dieser Funktion nicht behandeln und möchte einen Fehler unter Verwendung des Antwortcodes erzeugen und diesen Fehler zurückgeben, um ihn zu behandeln, wo immer diese Funktion aufgerufen wird. Kann mir jemand sagen, wie ich das anstellen soll? Oder ist dies nicht der "schnelle" Weg, um mit solchen Situationen umzugehen?
ErrorProtokoll anpassen
NSErroranstelle vonErrorin der Deklaration (var errorTemp = NSError(...))