iOS 手把手教你封装基于七牛的上传类

老大让封装一个新的上传类,目前公司用的是七牛的云存储,就基于七牛sdk封装了一个,上代码。

 七牛sdk要使用到AFNetworking,用Cocoapods 就能搞定这两个库的引入。

首先我们设计一下我们的上传类,我准备使用OC写,这个类是个单例,所以有一个单例初始化方法,有三个代理事件如下:

iOS 手把手教你封装基于七牛的上传类_第1张图片
代理方法


iOS 手把手教你封装基于七牛的上传类_第2张图片
初始化方法及对象方法

接下来就是.m 的实现过程,

iOS 手把手教你封装基于七牛的上传类_第3张图片
头文件的引入、属性列表与单例实现
iOS 手把手教你封装基于七牛的上传类_第4张图片
从服务器获取七牛token并准备上传


上传实现如下

iOS 手把手教你封装基于七牛的上传类_第5张图片
上传进度、取消上传实现


iOS 手把手教你封装基于七牛的上传类_第6张图片
七牛代理方法以及懒加载


iOS 手把手教你封装基于七牛的上传类_第7张图片
取消上传、继续上传


iOS 手把手教你封装基于七牛的上传类_第8张图片
辅助方法实现


iOS 手把手教你封装基于七牛的上传类_第9张图片
UploadFile.h

写到这里,我们的上传类基本功能都已经实现了,下面我说说其中需要注意的地方。

1,我在回调代理方法的时候在主线程中执行是因为七牛这个上传是在子线程中执行的,如果我们想在代理事件中改变我们的UI,必须在主线程,于是我这样写。

2,如果我们想要实现后台上传的话,可以在Appdelegate中保持一个UPloader的单例,在我们的控制器中调用上传,因为如果我们在ViewController中保持的话,在ViewController消失被销毁的时候,我们的UPLoader 也不会被保持,这样,上传进度就会变成0;也就不能实现后台上传的功能。

3,这里的UPloadFile可以写在我们的UPLoader 里面,不用再单独创建一个类。

4,上面有一个 头文件的引入标注有错误,因为其实 七牛SDK的头文件在.h中引入的,截图时没注意。

5,源代码百度云链接: http://pan.baidu.com/s/1pKLUJDx 密码: whev

你可能感兴趣的:(iOS 手把手教你封装基于七牛的上传类)