我希望达成的目标是在Swift 3中执行一个URLSession
请求。我将此操作放在一个单独的函数中(以免为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!)
}
}
}
}
我不想在这个函数中处理错误条件,希望使用响应代码生成错误并返回该错误,在调用该函数的任何地方处理它。有人能告诉我如何处理吗?或者这不是“Swift”的处理此类情况的方式吗?
NSError
而不是Error
(var errorTemp = NSError(...)
)。 - Luca D'Alberti