7

複数のファイルをダウンロードしている NSURLSession があります。iOS 8 用に iOS 7 アプリケーションを更新しています。iOS 7 では問題なく動作しますが、iOS 8 に準拠した場合

URLSessionDidFinishEventsForBackgroundURLSession: 

呼び出されることはありません。

私はもう少し深く掘り下げて、

-(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location

-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error

残りのダウンロード タスクのセッションをチェックしています。

[self.session getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks){ ...}

最後に呼び出されたデリゲート メソッドでは、常に 1 つの要素が downloadTasks 配列に残っています。奇妙なことに、このダウンロード タスクは常に同じファイルを参照しているわけではなく、そのタスクのステータスはダウンロードが完了したことを示しています。

繰り返しますが、ios7 では正常に動作します。問題は ios 8 でのみ発生します。

4

2 に答える 2