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

然后开始下载

然后是Delegate

这样主体就好了,需要注意一点:
NSURLSessionDownloadTask的cancel是调用
- (void)URLSession:task:didCompleteWithError:
最后完善一下,用一个单例来管理一个需要下载文件的数组,由若干个(自己设置)downloaer 来获取数组的项来下载,下载完毕就删掉数组里对应的项

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

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