penso che si dovrebbe fare questo ...
In primo luogo, tenere traccia delle vostre richieste al XI ter
var download_requests = [NSURLSession]()
Poi, ogni volta che si effettua una richiesta, aggiungere la richiesta per l'array così,
let s = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
if let url = NSURL(string: "http://my.url.request.com")
{
download_requests.append(s)
s.dataTaskWithURL(url)
{ (data, resp, error) -> Void in
// ....
}
}
Poi ogni volta che si desidera annullare qualsiasi richiesta in sospeso, (diciamo su viewDidDis apparire), fare
override func viewDidDisappear(animated: Bool)
{
super.viewDidDisappear(animated)
//stop all download requests
for request in download_requests
{
request.invalidateAndCancel()
}
}
fonte
2015-11-22 12:10:20
Bene, c'è l'API 'NSURLSessionTask', trova ciò che vuoi cancellare e chiama' cancel' su di esso. – esh
Corretto, è 'NSURLSesstionTask' ed è facile inviarlo metodo' cancel'. Ma il problema è trovare un compito specifico. In questo caso ho bisogno di elencare tutti i compiti della sessione corrente e trovare l'attività di cui ho bisogno per descrizione, per esempio. Quindi, ho bisogno di un modo per elencare le attività nella sessione. –