NSURLSessionDownloadTask 大致说明
将下载的数据存储到文件中的URL会话任务。
NSURLSessionDownloadTask是NSURLSessionTask的一个具体子类。与该类关联的大多数方法都记录在NSURLSessionTask中。
下载任务直接将服务器的响应数据写入一个临时文件,当数据从服务器到达时,为应用程序提供进度更新。当您在后台会话中使用下载任务时,即使您的应用程序挂起或不运行,这些下载仍将继续。
您可以暂停(取消)下载任务并稍后恢复它们(假设服务器支持这样做)。您还可以恢复由于网络连接问题而失败的下载。
NSURLSessionDownloadTask是一个表示下载到本地存储的任务。
NSURLSessionDownloadTask 属性和方法说明
- (void)cancelByProducingResumeData:(void (^)(NSData * _Nullable resumeData))completionHandler;
取消下载并调用带有恢复数据的回调函数以供以后使用。
只有符合下列条件,下载才可继续:
自您第一次请求资源以来,该资源一直没有更改
该任务是一个HTTP或HTTPS GET请求
服务器在响应中提供ETag或Last-Modified头(或两者都提供)
服务器支持字节范围请求
由于磁盘空间的压力,系统没有删除临时文件
成功取消下载后调用的完成处理程序。
如果下载是可恢复的,则为完成处理程序提供了一个resumeData对象。您的应用程序稍后可以将此对象传递给会话的downloadTaskWithResumeData:或downloadTaskWithResumeData:completionHandler:方法,以创建一个新任务,在停止下载的地方继续下载。
此块不能保证在特定的线程上下文中执行。因此,您可能需要指定一个适当的分派队列来执行任何工作。
取消下载(并调用超类-cancel)。如果条件允许在将来恢复下载,将使用一个不透明的数据blob调用回调,该数据blob可以与-downloadTaskWithResumeData一起使用:以尝试恢复下载。如果无法创建恢复数据,将使用nil resumeData调用完成处理程序。
网友评论