2016-11-05 7 views
0

iOS 10でURLセッションが再開しないのはなぜですか?私のiOSのダウンロードマネージャで

RCDownloadはURL、タイトルを保持するオブジェクトである、私はこのようになりますdefaultSessionと呼ばれるブロック変数を持っている状態をダウンロードし、ダウンロード

のデータの場所を再開する:

lazy var defaultSession: URLSession = { 

     let configuration = URLSessionConfiguration.background(withIdentifier: "RCBackgroundDownloader") 
     configuration.isDiscretionary = false 
     configuration.sessionSendsLaunchEvents = true 
     let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil) 

     return session 
    }() 

私のアプリがダウンロード

を一時停止し、再開することが可能であり、私のレジューム機能は、次のようになります。

func resume(download: RCDownload) { 

     var data: Data! 

     do { 
      data = try Data(contentsOf: download.getResumeDataURL()) 
     } catch {} 

     download.downloadState = downloadStatus.downloading 

     if data != nil { 
      download.downloadTask = self.defaultSession.downloadTask(withResumeData: data) 
      download.downloadTask?.resume() 
     } else { 
      download.downloadTask = self.defaultSession.downloadTask(with: download.downloadURL) 
      download.downloadTask?.resume() 
     } 

    } 

このコードはiOS 9で完全に機能しますが、アプリを終了して再開してもエラーは表示されません(注意:iOS 9では完全に動作しています)。どんな説明?

答えて

2

iOS 10のバグは、Appleが修正する必要があることです。彼らはこのthread on Apple's forumによると、しかし10.2版のためにそれを修正しました。

このStackoverflow's postを見ることもできます。彼らは詳細をソリューションに提供しました。

+0

最後に、私はiOS 10.0以来、それを解決しようとしているという説明があります。ありがとう。 – Raffi

+0

あなたは歓迎です:) – Munahil