老大让封装一个新的上传类,目前公司用的是七牛的云存储,就基于七牛sdk封装了一个,上代码。
七牛sdk要使用到AFNetworking,用Cocoapods 就能搞定这两个库的引入。
首先我们设计一下我们的上传类,我准备使用OC写,这个类是个单例,所以有一个单例初始化方法,有三个代理事件如下:


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


上传实现如下





写到这里,我们的上传类基本功能都已经实现了,下面我说说其中需要注意的地方。
1,我在回调代理方法的时候在主线程中执行是因为七牛这个上传是在子线程中执行的,如果我们想在代理事件中改变我们的UI,必须在主线程,于是我这样写。
2,如果我们想要实现后台上传的话,可以在Appdelegate中保持一个UPloader的单例,在我们的控制器中调用上传,因为如果我们在ViewController中保持的话,在ViewController消失被销毁的时候,我们的UPLoader 也不会被保持,这样,上传进度就会变成0;也就不能实现后台上传的功能。
3,这里的UPloadFile可以写在我们的UPLoader 里面,不用再单独创建一个类。
4,上面有一个 头文件的引入标注有错误,因为其实 七牛SDK的头文件在.h中引入的,截图时没注意。
5,源代码百度云链接: http://pan.baidu.com/s/1pKLUJDx 密码: whev
网友评论
我主要是不会那个
百度云链接: http://pan.baidu.com/s/1pKLUJDx 密码: whev