Sto avendo uno strano problema con NSURLSession sul metodo delegato didFinishDownloadingToURL.NSURLSession didFinishDownloadingToURL file scaricato temporaneo non trovato
La prima cosa che sto facendo è controllare se il file scaricato temporanea esiste:
- (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
}
...
}
E funziona normalmente quando l'applicazione è in primo piano e di scaricare finiture. Ma quando l'app è in background e viene uccisa forzatamente dal sistema operativo, restituisce false.
Qualcuno ha idea di cosa potrebbe accadere? So che esiste un limite di tempo per l'esecuzione di questo metodo delegato quando l'applicazione è attiva dal sistema operativo, in quanto non ha senso che il file temporaneo non sia presente. Non riesco nemmeno a copiarlo in un'altra posizione ... Ha senso essere a causa della dimensione del file? Sto scaricando un file di + -130 MB.
Grazie.
Ho lo stesso problema. Archiviato un bugreport http://openradar.appspot.com/radar?id=4943165404479488 – Biga
Prova ad aprire comunque l'URL. La chiamata fileExistsAtPath potrebbe mentirti a causa di qualche stranezza relativa alla sandbox dell'app. – dgatwood
hanno problemi simili. la posizione sta puntando al file che non esiste. Non succede spesso. Un po 'fastidioso. Mi chiedo se questo bug causi una cattiva durata della batteria, perché quel file verrà scaricato di nuovo. E se la posizione è di nuovo sbagliata, poi scaricata di nuovo ... ecc. –