1

我想知道我是否可以检索失败的 NSURLSessionDownloadTask 的部分下载数据。

我的用例是:

  1. 我开始下载一个 1024MB 的文件
  2. 已下载 512MB
  3. 网络中断导致下载失败
  4. 当下载失败时,调用delagte的-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error。但错误对象不包含下载数据的 512MB 文件的路径。

我的问题是:是否可以使用带有后台会话的NSURLSession API 来检索下载的 512MB ?

谢谢,

4

2 回答 2

2

苹果文档状态:

如果传输失败,会话对象会向您的委托或任务的完成处理程序提供一个 NSError 对象。在该对象中,userInfo 字典中的 NSURLSessionDownloadTaskResumeData 键包含一个 resumeData 对象。

来源:https ://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSession_class/#//apple_ref/occ/instm/NSURLSession/downloadTaskWithResumeData :

于 2015-05-11T18:27:40.517 回答
1

除了已经发布的答案(并对其进行扩展)之外,您还可以通过error对象本身访问已经下载的数据,如下所示:

NSData* resume_data = error.userInfo[NSURLSessionDownloadTaskResumeData];
于 2016-08-02T06:57:42.443 回答