Mam NSURLSession, która pobiera wiele plików. Ja aktualizowania aplikacji iOS 7 dla iOS 8. Współpracuje w iOS 7, ale gdy spełnione przeciwko iOS 8 Delegat meathodNSURLSession URLSessionDidFinishEventsForBackgroundURLSession handler nigdy nie nazywał się ios 8. OK w ios 7
URLSessionDidFinishEventsForBackgroundURLSession:
nigdy nie jest wywoływana.
kopany głębiej i na
-(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location
i
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
delegatów meathods jestem sprawdzanie sesji dla pozostałych zadań pobierania:
[self.session getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks){ ...}
na ostatni delegate meathod o nazwie zawsze zawiera jeden element remaning w tablicy downloadTasks. Dziwne jest to, że to zadanie pobierania nie zawsze odnosi się do tego samego pliku, a status tych zadań pokazuje, że pobieranie zostało zakończone.
Znowu działa poprawnie w ios7. Problem występuje tylko w ios 8.
Mogę potwierdzić ten problem. Zawsze jest jedno zadanie, które łamie implementację. Problem jest również dyskutowany na forach Apple: https://devforums.apple.com/message/1047695#1047695 - wygląda na to, że zgłoszono błędy: https://devforums.apple.com/message/1021734#1021734 – Krumelur