我正在尝试使用urlsession后台会话下载这是我的主要功能
func startfresh() {
session = URLSession(configuration: config, delegate: self, delegateQueue: OperationQueue())
let url = URL(string: "https://nava.ir/wp-content/uploads/2018/08/Gholamreza-Sanatgar-Dorooghe-Sefid-128.mp3")
task = session.downloadTask(with: url!)
task.resume()
}
和我的didcompletewitherror
func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
if error != nil {
let err = error as NSError?
let resumeData = err?.userInfo[NSURLSessionDownloadTaskResumeData] as? Data
print("anotherone")
let newtask = session.downloadTask(withResumeData: resumeData!)
newtask.resume()
}
else {
print("hichi")
}
}
但是当我仍在下载仍在进行中并关闭应用程序并再次重新启动并按开始下载时,它将启动2个任务,恢复上一个任务并开始一个新任务,我想仅使用恢复数据恢复上一个任务,我该怎么办?只是触发确实完成了错误方法。
答案 0 :(得分:1)
您看到的是某种“预期”,您必须设计软件来处理它。实际上,您还应该考虑一些其他事项。我进行了调查,并在下一个答案中给出了答案。 (NSURLSessionDownloadTask move temporary file) 还提供了一个示例项目。