Dies ist, was Apple-Dokumentation sagt in Bezug auf suspend
Methode der NSURLSessionTask
KlasseNSURLSessionTask. Suspend funktioniert nicht
Eine Aufgabe, während des Abbruchs, erzeugt kein Netzwerkverkehr und unterliegt nicht Timeouts.
Ok. So laufe ich den folgenden einfachen Code:
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")
})
Funktion delay
ist einfach ein Wrapper um dispatch_after
und eine Anforderung an http://httpbin.org/delay/10
gibt Antwort nach 10 Sekunden. Während ich auf eine Antwort warte, suspendiere ich die Aufgabe. Das funktioniert jedoch nicht. In 60 Sekunden wird der Completion-Block mit Timeout-Fehler aufgerufen. Kann mir bitte jemand erklären, was los ist?
Können Sie den Wrapper um 'dispatch_after' zeigen? –