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

问题描述 投票:0回答:3

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

我的用例是:

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

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

谢谢,

ios nsurlsession resume nsurlsessiondownloadtask
3个回答
2
投票

Apple 文档指出:

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

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


1
投票

除了已经发布的答案(并对其进行扩展)之外,您可以通过

error
对象本身访问已经下载的数据,如下所示:

NSData* resume_data = error.userInfo[NSURLSessionDownloadTaskResumeData];

0
投票

大家好,这适用于 iOS 18 中不受支持的 url 会话吗

© www.soinside.com 2019 - 2024. All rights reserved.