原创Blog,转载请注明出处
blog.csdn.net/hello_hwc
Demo 效果
下载一个URL,然后显示的ImageView并且保存到相册
之前的相册
保存图片后的相册
一 DownloadTask和DataTask的区别
简而言之,DownloadTask是把文件直接download到磁盘。
详细来说,有以下几点区别
- DownloadTask支持BackgroundSession,而dataTask不支持
- DownloadTask支持断点续传(下载到一半的时候暂停,重启后继续下载,前提下载的服务器支持断点续传)
二 用Block的方式来处理DownloadTask
这种情况下和DataTask类似,处理起来比较简单,但是不灵活。
其中,Location是download临时文件存储的路径
self.downloadTask = [self.session downloadTaskWithURL:(NSURL *) completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
}];
继续上一次保存的数据下载
self.downloadTask = [self.session downloadTaskWithResumeData:(NSData *) completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
}]
这里的ResumeData是通过
[self.downloadTask cancelByProducingResumeData:^(NSData *resumeData)completionHandler]
或者在Session的代理函数的Error中存储,Key是NSURLSessionDownloadTaskResumeData