如何获取失败的NSURLSessionDownloadTask的下载数据?

时间:2014-10-15 09:50:41

标签: ios nsurlsession resume nsurlsessiondownloadtask

我想知道我是否可以检索失败的NSURLSessionDownloadTask的parial downloadede数据。

我的用例是:

  1. 我开始下载1024MB文件
  2. 下载512MB
  3. 由于网络中断导致下载失败
  4. 当下载失败时,delagte的 - (void)URLSession:(NSURLSession *)会话 任务:(NSURLSessionTask *)任务didCompleteWithError:(NSError *)错误 叫做。但是错误对象不包含该路径 512MB下载数据文件。
  5. 我的问题是:是否可以使用带有后台会话 NSURLSession API检索下载的512MB?

    谢谢,

2 个答案:

答案 0 :(得分:2)

Apple文档状态:

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

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

答案 1 :(得分:1)

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

NSData* resume_data = error.userInfo[NSURLSessionDownloadTaskResumeData];