WXDownloadManager 0.5.0

WXDownloadManager 0.5.0

sivanWu 维护。



  • sivanWu

WXDownloadImage

image

  1. 基于 URLSession 封装的下载组件,可以用来并行下载文件,取消单个文件的下载,或取消所有文件的下载
  2. WXDownloadModel 是对下载文件的抽象
  3. 有关下载文件的接口都在 WXDownloadManager.h 文件中
  4. 具体的使用示例在 ViewController.m 中
  5. 支持断点续传,程序退出后再次进入,依旧保持上次下载的状态
  6. 支持设置最大同时下载数目 maxDownloadNumber,多余的任务会挂起,可以随时取消和删除
  7. 源码中遇到的全部问题和注意事项可以参考以下内容
  8. 可以实时更新文件下载进度,百分比,文件名,文件大小和已下载大小

其中比较重要的函数

/**
 下载的时候调用这个

 @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 文件