Ich habe ein seltsames Problem mit NSURLSession auf der Delegate-Methode didFinishDownloadingToURL.NSURLSession didFinishDownloadingToURL temporäre heruntergeladene Datei nicht gefunden
Der erste, was ich tue, ist zu überprüfen, ob die temporäre heruntergeladene Datei vorhanden:
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
didFinishDownloadingToURL:(NSURL *)location
{
if (![[NSFileManager defaultManager] fileExistsAtPath: [location path]])
{
NSLog(@"Error. File not found");
return; // is giving error when the app is wake up by the system
}
...
}
Es funktioniert in der Regel, wenn der App im Vordergrund und Download beendet ist. Wenn sich die App jedoch im Hintergrund befindet und vom Betriebssystem zwangsweise getötet wird, wird false zurückgegeben.
Hat jemand eine Idee, was passieren könnte? Ich weiß, dass es ein Zeitlimit für die Ausführung dieser Delegate-Methode gibt, wenn die App vom Betriebssystem aktiviert wird, da es keinen Sinn macht, dass die temporäre Datei nicht da ist. Ich kann es nicht einmal an einen anderen Ort kopieren ... Macht es wegen der Größe der Datei Sinn? Ich lade eine Datei von + -130MB herunter.
Danke.
Ich habe das gleiche Problem. Filed einen Fehlerbericht http://openradar.appspot.com/radar?id=4943165404479488 – Biga
Versuchen Sie, die URL trotzdem zu öffnen. Der Aufruf von fileExistsAtPath könnte Ihnen aufgrund von Eigenheiten in Zusammenhang mit der App-Sandbox anzulasten sein. – dgatwood
haben ähnliches Problem. Der Speicherort verweist auf eine Datei, die nicht existiert. Es passiert nicht oft. Ein bisschen nervig. Ich frage mich, ob dieser Fehler eine schlechte Akkulaufzeit verursacht, weil diese Datei erneut heruntergeladen wird. Und wenn der Standort wieder falsch ist, dann erneut heruntergeladen ... etc. –