用NSURLSession做了一个下载模块


一直以来都在用 AFNetworking ,但是最近在做下载时希望能写一个全局的下载模块,而且不使用其他类库,以免之后项目换类库搞得其他模块都要重写,索性就自己写一个下载模块,用的是NSURLSession。


并不复杂,主要用到两个类 NSURLSessionDownloadTask , NSURLSession。先创建任务

用NSURLSession做了一个下载模块_第1张图片


然后开始下载

用NSURLSession做了一个下载模块_第2张图片


然后是Delegate


用NSURLSession做了一个下载模块_第3张图片

这样主体就好了,需要注意一点:

NSURLSessionDownloadTask的cancel是调用 

- (void)URLSession:task:didCompleteWithError:

最后完善一下,用一个单例来管理一个需要下载文件的数组,由若干个(自己设置)downloaer 来获取数组的项来下载,下载完毕就删掉数组里对应的项

用NSURLSession做了一个下载模块_第4张图片

接受相应的通知即可,使用只需要

done

项目放在github上 XSDownload ,欢迎使用并提出问题和意见

你可能感兴趣的:(用NSURLSession做了一个下载模块)