一、简单说明
在前面几篇文章介绍下载代码的基础上,此文分析对下载功能进行封装。
通过之前的代码,我们发现仅仅是下载一个文件就需要写很长的代码,那么如果要下载多个文件,就需要写多份代码。在这里,我们把下载一个文件的代码进行封装。控制器只需要知道,下载哪个文件,下载到哪个路径就可以了。
在对下载的功能进行封装后,添加一个文件下载器,一个文件下载器只下载一个文件,封装后如果要下载多个文件的话,那么只需要创建多个文件下载器对象就可以进行控制和下载了。
二、代码示例
1.代码:
新建一个类,让其继承自NSObject类,一个文件下载器只下载一个文件。
自定义类的头文件代码:
1 // 2 // YYfileDownloader.h 3 // 4 // 5 // Created by apple on 14-7-1. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import 10 11 @interface YYfileDownloader : NSObject 12 //下载的远程url(连接到服务器的路径) 13 @property(nonatomic,strong)NSString *url; 14 //下载后的存储路径(文件下载到什么地方) 15 @property(nonatomic,strong)NSString *destPath; 16 //是否正在下载(只有下载器内部清楚) 17 @property(nonatomic,readonly,getter = isDownloading)BOOL Downloading; 18 //用来监听下载进度 19 @property(nonatomic,copy)void (^progressHandler)(double progress); 20 //用来监听下载完成 21 @property(nonatomic,copy)void (^completionHandler)(); 22 //用来监听下载错误 23 @property(nonatomic,copy)void(^failureHandler)(NSError *error); 24 -(void)pause; 25 -(void)start; 26 @end