LZBDownLoader 0.1.4

LZBDownLoader 0.1.4

测试已测试
语言语言 Objective CObjective C
许可证 MIT
版本最新发布2017年9月

lzbgithubcode 维护。



  • 作者:
  • lzbgithubcode

简单介绍

LZBDownLoader 是一个单独的下载器,LZBDownLoaderManger 管理多个下载器。您可以直接使用下载器下载音频、视频、文件资源,侵入性小、低耦合。

  • 支持单个任务下载
  • 支持多任务下载管理
  • 可以下载音频、视频、文件资源
  • 下载文件采用 MD5 加密保存

类的介绍

  • LZBDownLoaderManger:多个下载器管理
  • LZBDownLoader:单个下载器管理
  • LZBFileManger:下载文件管理
  • NSString+LZBEncrypt:文件加密保存分类

手动导入

LZBDownLoader 文件夹中的所有源代码拖入项目中

导入主头文件:#import "LZBDownLoaderManger.h"

## 可以使用的方法

  • 单个下载器 LZBDownLoader,代理、block 两种方式具体事件传递和状态传递
//状态改变通知 传递URL 和状态@"downLoadURL" @"downLoadState"

#define kLZBLZBDownLoaderURLAndStateChangeNotification @"LZBLZBDownLoaderURLAndStateChangeNotification"
typedef NS_ENUM(NSInteger,LZBDownLoaderState)
{
LZBDownLoaderState_Pause = 0, //暂停
LZBDownLoaderState_Downing = 1, //下载中
LZBDownLoaderState_DownSuccess = 2, //下载成功
LZBDownLoaderState_DownFailed = 3, //下载失败
};
//下载总大小
typedef void(^DownLoadInfoType)(long long totalSize);
//下载状态
typedef void(^DownLoadStateType)(LZBDownLoaderState state);
//下载进度
typedef void(^DownLoadProgressType)(CGFloat progress);
//下载成功
typedef void(^DownLoadSuccessType)(NSString *cachePath);
//下载失败
typedef void(^DownLoadFailedType)(NSError *error);



@protocol LZBDownLoaderDelegate <NSObject>

/**下载总大小*/
- (void)downLoad:(LZBDownLoader *)downLoader downLoadInfo:(long long)totalSize;
/**下载状态*/
- (void)downLoad:(LZBDownLoader *)downLoader downLoadState:(LZBDownLoaderState)state;
/**下载进度*/
- (void)downLoad:(LZBDownLoader *)downLoader downLoadProgress:(CGFloat)progress;
/**下载成功*/
- (void)downLoad:(LZBDownLoader *)downLoader downLoadSuccess:(NSString *)cachePath;
/**下载失败*/
- (void)downLoad:(LZBDownLoader *)downLoader downLoadFailed:(NSError *)error;
@end

@interface LZBDownLoader : NSObject

/**
下载文件方法
*/
- (void)downLoadWithURL:(NSURL *)url downLoadInfo:(DownLoadInfoType)downLoadInfoBlock downLoadState:(DownLoadStateType)downLoadStateBlcok progress:(DownLoadProgressType)downLoadProgressBlock success:(DownLoadSuccessType)downLoadSuccessBlcok failed:(DownLoadFailedType)downLoadFailedBlock;
/**
下载文件

@param url 文件的URL路径
*/
- (void)downLoadWithURL:(NSURL *)url;

/**
暂停当前的任务
*/
- (void)pauseCurrentTask;

/**
继续下载的任务
*/
- (void)resumeCurrentTask;

/**
取消当前的任务
*/
- (void)cancelCurrentTask;

/**
取消任务并清除临时下载的文件
*/
- (void)cancelAndClean;

/**下载状态*/
@property (nonatomic, assign, readonly) LZBDownLoaderState state;

/**下载进度*/
@property (nonatomic, assign, readonly) CGFloat progress;

/**下载代理*/
@property (nonatomic, weak) id <LZBDownLoaderDelegate>delgate;

  • 多任务下载管理类 LZBDownLoaderManger
//单例
+ (instancetype)shareInstance;


/**
根据URL下载资源

@param url url
@return 下载器
*/
- (LZBDownLoader *)downLoadWithURL:(NSURL *)url;


// 获取url对应的downLoader
- (LZBDownLoader *)getDownLoaderWithURL: (NSURL *)url;

//下载文件
- (LZBDownLoader *)downLoadWithURL:(NSURL *)url downLoadInfo:(DownLoadInfoType)downLoadInfoBlock downLoadState:(DownLoadStateType)downLoadStateBlcok progress:(DownLoadProgressType)downLoadProgressBlock success:(DownLoadSuccessType)downLoadSuccessBlcok failed:(DownLoadFailedType)downLoadFailedBlock;


/**
暂停某个URL任务
*/
- (void)pauseWithURL:(NSURL *)url;

/**
取消某个URL任务
*/
- (void)resumeWithURL:(NSURL *)url;

/**
取消某个URL任务
*/
- (void)cancelWithURL:(NSURL *)url;

/**
暂停所有任务
*/
- (void)pauseAllURL;

/**
继续所有任务
*/
- (void)resumeAllURL;

/**
取消所有任务
*/
- (void)cancelAllURL;

联系作者

作者

lzbgithubcode,[email protected]

期待

  • 如果在使用过程中遇到 bug,希望你能联系我,谢谢。
  • 如果您觉得这个 demo 对您有所帮助,请给我一颗❤️❤️,star 一下
  • 如果你想了解更多的开源姿势,可以关注公众号“开发者源代码”

image