C'est ce que la documentation d'Apple dit au sujet de la méthode suspend
de NSURLSessionTask
classeNSURLSessionTask. Suspendre ne fonctionne pas
Une tâche, alors qu'il était suspendu, ne produit pas le trafic réseau et ne sont pas soumis à temps morts.
Ok. Donc, je courais le code simple suivant:
let url = NSURL(string: "http://httpbin.org/delay/10")!
let urlRequest = NSURLRequest(URL: url)
self.task = NSURLSession.sharedSession().dataTaskWithURL(urlRequest.URL!, completionHandler: {
data, response, error in print("completion ERROR \(error)")
})
self.task.resume()
print("Start")
delay(5, closure: {
self.task.suspend()
print("Suspend")
})
Fonction delay
est tout simplement une enveloppe autour dispatch_after
et une demande de http://httpbin.org/delay/10
donne une réponse au bout de 10 secondes. Au milieu d'attendre la réponse, je suspends la tâche. Cependant cela ne fonctionne pas. En 60 secondes, le bloc d'achèvement est appelé avec une erreur de dépassement de délai. Quelqu'un peut-il expliquer ce qui ne va pas?
Pouvez-vous montrer l'emballage autour de 'dispatch_after'? –