Những gì tôi đang cố gắng đạt được là thực hiện một URLSession
yêu cầu trong nhanh chóng 3. Tôi đang thực hiện hành động này trong một chức năng riêng biệt (để không viết mã riêng cho GET và POST) và trả về URLSessionDataTask
và xử lý thành công và thất bại trong các lần đóng. Đại loại như thế này-
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!)
}
}
}
}
Tôi không muốn xử lý tình trạng lỗi trong hàm này và muốn tạo ra lỗi bằng cách sử dụng mã phản hồi và trả về Lỗi này để xử lý nó ở bất cứ nơi nào hàm này được gọi từ. Ai có thể cho tôi biết làm thế nào để đi về điều này? Hay đây không phải là cách "Swift" để xử lý những tình huống như vậy?
NSError
thay vìError
trong tờ khai (var errorTemp = NSError(...)
)