官方给出的例子中没有看明白,求大神给我讲一下
首先把框架加入项目,在AppDelegate或其他什么需要的地方,引入头文件
#import <QiniuSDK.h> ... NSString token = @"从服务端SDK获取"; //这里的token是你的存储空间的唯一标识 //QNUploadManager 是上传类 QNUploadManager *upManager = [[QNUploadManager alloc] init]; NSData *data = [@"Hello, World!" dataUsingEncoding : NSUTF8StringEncoding]; //这里将data上传,key是"hello" [upManager putData:data key:@"hello" token:token complete: ^(QNResponseInfo *info, NSString *key, NSDictionary *resp) { NSLog(@"%@", info); NSLog(@"%@", resp); } option:nil]; ...
上传进度有个单独的block用来回调,你必须生成一个QNUploadOption类,并把它传入上面代码的option参数
typedef void (^QNUpProgressHandler)(NSString *key, float percent); //option实例的例子 QNUploadOption *opt = [[QNUploadOption alloc] initWithMime:@"text/plain" progressHandler:nil params:@{ @"x:foo":@"fooval" } checkCrc:YES cancellationSignal:nil];
注意,上面的option例子中,progressHandler:nil和cancellationSignal:nil都是空,你如果需要断点续传,一般需要传入cancellationSignal,因为只有两种情况,一个是用户取消了,一个是下载中断了。
progressHandler:nil
cancellationSignal:nil
NSError *error; QNFileRecorder *file = [QNFileRecorder fileRecorderWithFolder:@"保存目录" error:&error]; //check error QNUploadManager *upManager = [[QNUploadManager alloc] initWithRecorder:file];
要实现断点续传,需要在QNUploadManager初始化时候,传入一个QNFileRecorder实例,而不腻像第一个例子中直接使用init方法,而是用initWithRecorder:方法。文档中说“SDK自带了将进度保存到文件的方法”,所已其他不需要你操心了。你可以实现cancellationSignal:nil测试。
QNUploadManager
QNFileRecorder
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(1)
首先把框架加入项目,在AppDelegate或其他什么需要的地方,引入头文件
上传进度有个单独的block用来回调,你必须生成一个QNUploadOption类,并把它传入上面代码的option参数
注意,上面的option例子中,
progressHandler:nil
和cancellationSignal:nil
都是空,你如果需要断点续传,一般需要传入cancellationSignal,因为只有两种情况,一个是用户取消了,一个是下载中断了。断点续传
要实现断点续传,需要在
QNUploadManager
初始化时候,传入一个QNFileRecorder
实例,而不腻像第一个例子中直接使用init方法,而是用initWithRecorder:方法。文档中说“SDK自带了将进度保存到文件的方法”,所已其他不需要你操心了。你可以实现cancellationSignal:nil测试。