To, co staram się osiągnąć, to wykonać URLSession
żądanie w swift 3. Wykonuję tę akcję w osobnej funkcji (aby nie pisać kodu osobno dla GET i POST) i zwracam URLSessionDataTask
i obsługuję sukces i niepowodzenie w domknięciach. Coś w ten sposób-
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!)
}
}
}
}
Nie chcę obsługiwać warunku błędu w tej funkcji i chcę wygenerować błąd przy użyciu kodu odpowiedzi i zwrócić ten błąd, aby obsłużyć go, gdziekolwiek ta funkcja jest wywoływana. Czy ktoś może mi powiedzieć, jak się do tego zabrać? A może nie jest to „szybki” sposób radzenia sobie w takich sytuacjach?
NSError
zamiastError
w deklaracji (var errorTemp = NSError(...)
)