สิ่งที่ฉันพยายามบรรลุคือดำเนินการURLSession
ตามคำขออย่างรวดเร็ว 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!)
}
}
}
}
ฉันไม่ต้องการจัดการเงื่อนไขข้อผิดพลาดในฟังก์ชันนี้และต้องการสร้างข้อผิดพลาดโดยใช้รหัสตอบกลับและส่งคืนข้อผิดพลาดนี้เพื่อจัดการกับฟังก์ชันนี้ไม่ว่าจะเรียกใช้ฟังก์ชันนี้จากที่ใด ใครช่วยบอกทีว่าจะไปเกี่ยวกับเรื่องนี้ได้อย่างไร หรือนี่ไม่ใช่วิธี "Swift" ในการจัดการสถานการณ์ดังกล่าว
NSError
แทนError
ในการประกาศ (var errorTemp = NSError(...)
)