使用 urlsession 下载文件

download file with urlsesssion

我正在尝试使用 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 个任务恢复上一个任务并开始一个新任务我只想恢复上一个任务并恢复数据什么我应该如何触发 did complete with error 方法。

您所看到的有点像 "expected",您必须设计软件来处理它。其实,还有一些事情你应该考虑。我已经调查并记下了下一个答案。 (NSURLSessionDownloadTask move temporary file) 还提供了示例项目。