Mam dziwny problem z NSURLSession na delegate method didFinishDownloadingToURL.NSURLSession didFinishDownloadingToURL tymczasowo pobrany plik nie został znaleziony
Pierwszą rzeczą, jaką robię, to sprawdzić, czy istnieje plik tymczasowy Pobrano:
- (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
}
...
}
To działa normalnie, gdy aplikacja jest w planie i pobierania wykończeń. Ale gdy aplikacja działa w tle i jest wymuszona przez system operacyjny, zwraca false.
Czy ktoś ma pojęcie o tym, co może się wydarzyć? Wiem, że istnieje limit czasu na wykonanie tej delegowanej metody, gdy aplikacja jest wybudzana przez system operacyjny, ponieważ nie ma sensu, aby plik tymczasowy tam nie istniał. Nie mogę nawet skopiować go do innej lokalizacji ... Czy to ma sens być ze względu na rozmiar pliku? Pobierany jest plik o wielkości +1 -130 MB.
Dzięki.
Mam ten sam problem. Zgłoszony raport błędu http://openradar.appspot.com/radar?id=4943165404479488 – Biga
Spróbuj mimo to otworzyć adres URL. Wywołanie fileExistsAtPath może cię okłamać z powodu jakiegoś dziwactwa związanego z piaskownicą aplikacji. – dgatwood
mają podobny problem. lokalizacja wskazuje na plik, który nie istnieje. Nie zdarza się to często. Trochę denerwujące. Zastanawiam się, czy ten błąd powoduje zły stan baterii, ponieważ plik ten zostanie pobrany ponownie. A jeśli lokalizacja jest znowu zła, to ściągnij ponownie ... itd. –