Nel mio progetto ci sono 4 servizi Web in esecuzione in background. Vorrei interrompere tutti questi servizi al logout dallo stato corrente senza attendere la risposta. Ho trovato questo codice per farloAnnulla tutte le chiamate di servizio Web da Alamofire
Alamofire.Manager.sharedInstance.session.invalidateAndCancel()
Ma dopo aver chiamato questo, non sono in grado di effettuare nuovamente chiamate di servizio. C'è un modo per cancellare tutte le richieste in corso?
Ecco il mio servizio chiamando il codice
func getAllCount(parameters: [String: AnyObject],completion: (success : Bool) -> Void) {
PKHUD.sharedHUD.contentView = PKHUDTextView(text: "Loading...")
PKHUD.sharedHUD.show()
request = Alamofire.request(.POST, GlobalConstants.KGetAllCount, parameters: parameters, encoding:.JSON).responseJSON
{
response in switch response.result {
case .Success(let JSON):
PKHUD.sharedHUD.hide()
print("Success with JSON: \(JSON)")
let status : NSString = JSON.valueForKey("status") as! String
if(status .isEqualToString("1")){
MyViewState.QJoined = JSON.valueForKeyPath("data.TotalJoinQueue") as! String
MyViewState.Qstarted = JSON.valueForKeyPath("data.TotalCreatedQueue") as! String
MyViewState.Bumps = JSON.valueForKeyPath("data.TotalBump") as! String
completion(success: true)
break
}else{
completion(success: false)
Helper.globalAlert(JSON.valueForKey("data") as! String)
break
}
case .Failure(let error):
PKHUD.sharedHUD.hide()
print("Request failed with error: \(error)")
completion(success: false)
break
}
}
}
è possibile annullare solo la richiesta in sospeso. se la richiesta è in esecuzione, è troppo tardi ... non esegui affatto servizi Web. – user3441734
Si prega di rivedere questa risposta http://stackoverflow.com/a/27022598/1030951 – HarshIT