我所試圖實現的是執行迅速3. URLSession
要求我在一個單獨的函數執行此操作(從而不單獨編寫代碼GET和POST)和返回URLSessionDataTask
並處理關閉中的成功和失敗。有點像這個 -生成自己的錯誤代碼SWIFT 3
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(...)') –
解決了這個問題,但是我認爲swift 3不希望繼續使用NS? – Rikh
它在iOS開發中有用,對於純Swift開發,你應該創建你自己的錯誤實例通過符合'錯誤'協議 –