Giter VIP home page Giter VIP logo

objc-sdk's Introduction

title
Objective-C SDK | 七牛云存储

Objective-C SDK

SDK下载地址:https://github.com/qiniu/objc-sdk

本SDK目前只提供了一个简单版本的上传功能,在类QiniuSimpleUploader中实现。

QiniuSimpleUploader

QiniuSimpleUploader类提供了简单易用的iOS端文件上传功能。它的基本用法非常简单:

// 创建一个QiniuSimpleUploader实例。
// 需要保持这个变量,以便于用户取消某一个上传过程,通常创建的实例会保存为ViewController的成员变量。
_uploader = [[QiniuSimpleUploader uploaderWithToken:[self tokenWithScope:bucket]] retain];

// 设置消息器,消息接收器必须实现接口QiniuUploadDelegate。	
_uploader.delegate = self;

// 开始上传  
[_uploader upload:filePath bucket:bucket key:key extraParams:nil];

如本例所示,如果我们需要保持该实例,我们需要手动的调用retain和release来避免内存出错或泄漏。

QiniuUploadDelegate

这个delegate接口由调用者实现,以获取上传的结果和进度信息。

@protocol QiniuUploadDelegate <NSObject>

@optional

// Progress updated. 1.0 indicates 100%.
- (void)uploadProgressUpdated:(NSString *)filePath percent:(float)percent;

@required

// Upload completed successfully.
- (void)uploadSucceeded:(NSString *)filePath hash:(NSString *)hash;

// Upload failed.
- (void)uploadFailed:(NSString *)filePath error:(NSError *)error;

@end

可以看到,该接口包含了两个必须实现的方法和一个可选的方法。我们可以选择由ViewController直接实现,类似于如下:

@interface QiniuViewController : UIViewController<QiniuUploadDelegate, …>

这个接口可以被QiniuSimpleUploader和QiniuResumableUploader共用。因此对于当前使用QiniuSimpleUploader的开发者,之后换成QiniuResumableUploader将只需要调整极少的代码。

使用方法

因为当前的SDK只包含了3个.h文件和一个.m文件,为避免需要管理工程依赖关系,开发者完全可以直接将所提供的这几个文件直接添加到自己的工程中,当然,也需要添加对应的依赖包:JSONKit、ASIHttpRequest和GTMBase64。

本SDK附带的QiniuDemo是以静态库的方式使用QiniuSDK。如果开发者希望用这种方式引入QiniuSDK,可以借鉴一下QiniuDemo的工程设置。

运行QiniuDemo之前需要先设置代码中的三个常量:kAccessKey、kSecretKey和kBucketName。相应的值都可以在我们的开发者平台上操作和获取。

注意事项

如果以静态链接库的方式使用该SDK,请注意您的工程设置中需要设置-ObjC标志,这是因为该SDK中使用了Objective-C category功能来实现JSON字符串的序列化和反序列化,而没有-ObjC标志的话Objective-C category功能将不能正常工作,错误表现为直接异常退出。

另外,由于QiniuSimpleUploader采用的是单次HTTP请求发送整个文件内容的方法,因此并不适合用于上传大尺寸的文件。如果您有这方面的需求,请联系我们。我们稍后也会在SDK中增加支持断点续传的上传类。

objc-sdk's People

Contributors

hughlv avatar xushiwei avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

moregg

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.