Wie setze ich den Download-Vorgang nach einer Verzögerung fort?Erneuter Versuch eines fehlgeschlagenen Downloads in URLSession: task: didCompleteWithError
hatte ich einen Blick auf diesen Thread:
iOS NSURLSession, how to retry in didCompleteWithError
Der dritte Ansatz von Rob vorgeschlagen ist, was ich versuche, zu tun, aber ich weiß nicht, wie eine Zeitverzögerung einstellen.
Bisher Ich habe so etwas wie dies:
-(void)URLSession:(NSURLSession*)session task:(NSURLSessionTask*)task didCompleteWithError:(NSError*)error {
if (error == nil)
return;
NSData* resume_data = error.userInfo[NSURLSessionDownloadTaskResumeData];
NSURLSessionDownloadTask* new_task = [_session downloadTaskWithResumeData:resume_data];
[new_task resume];
}
würde Ich mag 10 Sekunden warten (sagen wir) und dann wieder auf.
Bitte beachten Sie, dass 'performSelector: withObject: afterDelay:' wird nicht funktionieren, wenn von einem Hintergrund-Thread aufgerufen. versuchen Sie es mit dispatch_after, es funktioniert von welchem Thread (obwohl es auch ein paar Vorbehalte). – OlDor
danke. Dies löste das unmittelbare Problem, eine Funktion nach einer Verzögerung aufzurufen. – Ash