私が達成しようとしているのはURLSession
、swift 3でリクエストを実行することです。このアクションを別の関数で実行し(GETとPOSTのコードを別々に記述しないように)、を返し、URLSessionDataTask
クロージャーの成功と失敗を処理しています。このようなもの-
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!)
}
}
}
}
この関数でエラー状態を処理したくないので、応答コードを使用してエラーを生成し、このエラーを返して、この関数が呼び出された場所でエラーを処理したいと思います。誰かがこれについてどうやって行くのか教えてもらえますか?それとも、これはそのような状況に対処するための「迅速な」方法ではありませんか?
NSError
代わりに使用してみてくださいError
(var errorTemp = NSError(...)
)