老大讓封裝一個新的上傳類,目前公司用的是七牛的云存儲,就基于七牛sdk封裝了一個,上代碼马篮。
?七牛sdk要使用到AFNetworking,用Cocoapods 就能搞定這兩個庫的引入怜奖。
首先我們設計一下我們的上傳類浑测,我準備使用OC寫,這個類是個單例歪玲,所以有一個單例初始化方法迁央,有三個代理事件如下:
代理方法
初始化方法及對象方法
接下來就是.m 的實現(xiàn)過程,
頭文件的引入滥崩、屬性列表與單例實現(xiàn)
從服務器獲取七牛token并準備上傳
上傳實現(xiàn)如下
上傳進度岖圈、取消上傳實現(xiàn)
七牛代理方法以及懶加載
取消上傳、繼續(xù)上傳
輔助方法實現(xiàn)
UploadFile.h
寫到這里夭委,我們的上傳類基本功能都已經(jīng)實現(xiàn)了幅狮,下面我說說其中需要注意的地方。
1株灸,我在回調(diào)代理方法的時候在主線程中執(zhí)行是因為七牛這個上傳是在子線程中執(zhí)行的,如果我們想在代理事件中改變我們的UI擎值,必須在主線程慌烧,于是我這樣寫。
2鸠儿,如果我們想要實現(xiàn)后臺上傳的話屹蚊,可以在Appdelegate中保持一個UPloader的單例,在我們的控制器中調(diào)用上傳进每,因為如果我們在ViewController中保持的話汹粤,在ViewController消失被銷毀的時候,我們的UPLoader 也不會被保持田晚,這樣嘱兼,上傳進度就會變成0;也就不能實現(xiàn)后臺上傳的功能贤徒。
3芹壕,這里的UPloadFile可以寫在我們的UPLoader 里面,不用再單獨創(chuàng)建一個類接奈。
4踢涌,上面有一個 頭文件的引入標注有錯誤,因為其實 七牛SDK的頭文件在.h中引入的序宦,截圖時沒注意睁壁。
5,源代碼百度云鏈接: http://pan.baidu.com/s/1pKLUJDx 密碼: whev