Ich versuche, eine URLSession
Anforderung 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) URLSessionDataTask
und 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?
Error
Protokoll anpassen
NSError
anstelle vonError
in der Deklaration (var errorTemp = NSError(...)
)