七牛只有Objective-C的庫沒有Swift的庫 务豺, 所以需要橋接。橋接的方法不用多少了助析,網(wǎng)上一大堆教程
七牛oc的SDK地址:http://developer.qiniu.com/docs/v6/sdk/objc-sdk.html
可以使用cocoaPods直接引入 pod "Qiniu", "~> 7.0"
因為七牛有使用AFNetworking 和 HanekeSwift 庫妄痪,所引入的時候要引入這兩個
一般微信、微博SDK橋接舍杜,我們直接簡單的這樣就行了
#import "WXApiObject.h"
#import "WXApi.h"
#import "WeiboSDK.h"
但是七牛你這樣導入 就會報錯 , 一直說找不到文件赵辕。
你需要這樣
#import "AFNetworking/AFNetworking.h"
#import "Qiniu/QiniuSDK.h"
#import "HappyDNS/HappyDNS.h"
現(xiàn)在好了,不報錯了概龄。滿心歡喜的開始使用SDK还惠, 我想上傳本地相冊的照片 , 用的PhotoKit拿到的是PHAsset
對象 私杜, 看了下官方的例子 :
#import <QiniuSDK.h>
...
NSString token = @"從服務端SDK獲取";
QNUploadManager *upManager = [[QNUploadManager alloc] init];
NSData *data = [@"Hello, World!" dataUsingEncoding : NSUTF8StringEncoding];
[upManager putData:data key:@"hello" token:token complete:
^(QNResponseInfo *info, NSString *key, NSDictionary *resp)
{
NSLog(@"%@", info);
NSLog(@"%@", resp);
} option:nil];
...
一看就是傳入NSData類型的數(shù)據(jù)蚕键,傳入一個key ,繼續(xù)很happy的將它轉成swift的格式衰粹,info.statusCode 為200的時候是成功 锣光。 然后根據(jù)自己的PHAsset拿到UIImage對象 , 將UIImage對象再轉成NSData類型的對象铝耻。傳入后返回statusCode 200很開心成功了誊爹。
然而 蹬刷,從服務器down下來 ,圖片格式.81 .223之類的频丘,什么鬼不是成功了嗎办成。。搂漠。迂卢。。
好吧桐汤,服務器返回的連接是亂的錯得而克。 去看七牛的API ,原來有各種put的方法 putFile , putPHAsset 怔毛。员萍。。馆截。等等 充活。尼瑪。還是太年輕呀蜡娶。混卵。
最后用了putPHAsset返回的連接還是錯的,最后看api說key可以為nil窖张,這樣的話七牛隨機生成幕随,我傳入了nil后,成功了宿接。
let upManager = QNUploadManager()
upManager.putPHAsset(item, key: nil , token: token , complete: { (info, key, resp) -> Void in
if (info.statusCode == 200 && resp != nil){
//上傳完畢
if i == sum{
//刷新數(shù)據(jù)
}
}else{
//失敗
}
}, option: nil)
token是從自己服務器上取嗒赘淮。問題終于解決了,關鍵是百度居然沒搜到這樣問題睦霎。還是我太年輕梢卸。。副女。記錄下吧蛤高。