为什么URLSession不能在iOS 10上恢复?

问题描述:

在我的iOS的下载管理器为什么URLSession不能在iOS 10上恢复?

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 10上,当我杀死我的应用程序并重新打开时,它不会恢复但没有错误出现(提醒:它在iOS 9上工作完美),我很困惑任何解释?

这个错误是在iOS 10中,Apple必须解决它。根据这个thread on Apple's forum,他们已经修复了10.2版本。

你也可以看看这个*'s post。他们提供了详细的解决方案。

+0

最后,我有一个解释,我一直试图解决它,因为iOS 10.0。谢啦。 – Raffi

+0

欢迎您:) – Munahil