WXDownloadImage
- 基于 URLSession 封装的下载组件,可以用来并行下载文件,取消单个文件的下载,或取消所有文件的下载
- WXDownloadModel 是对下载文件的抽象
- 有关下载文件的接口都在 WXDownloadManager.h 文件中
- 具体的使用示例在 ViewController.m 中
- 支持断点续传,程序退出后再次进入,依旧保持上次下载的状态
- 支持设置最大同时下载数目 maxDownloadNumber,多余的任务会挂起,可以随时取消和删除
- 源码中遇到的全部问题和注意事项可以参考以下内容
- 可以实时更新文件下载进度,百分比,文件名,文件大小和已下载大小
其中比较重要的函数
/**
下载的时候调用这个
@param URL 远程文件的URL
@param state 下载状态回调
@param percentage 下载百分比回调
@param completion 下载完成回调
*/
- (void)download:(NSURL *)URL
state:(downloadStateBlock)state
percentage:(downloadPercentageBlock)percentage
completion:(downloadCompletionBlock)completion;
NSURLSessionDataDelegate
//收到Response之后就会调用,这里开启文件流,并可以获取文件总大小
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler
{
}
//在接收数据的过程中会调用这个函数,这里通过block回调各种接收过程中的变化
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
{
}
NSURLSessionDelegate
//完成时调用,关闭流,移除model并回调完成状态
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
{
}
下载时调用这个,在 block 中可以获取下载的状态,下载文件的百分比,以及完成情况,从而更新视图。具体的 block 参数请参考 WXDownloadModel.h 文件