Swift项目中的Cloudinary SDK

阿米

有没有一种方法可以在Swift文件中使用Obj-C SDK?我试图将cloudinary SDK添加到我的项目中。我找到了一种将libcloudinary.a添加到我的项目Frameworks中的方法,但是它不起作用。

更新:Cloudinary刚刚发布了用Swift语言编写的新SDK:https//github.com/cloudinary/cloudinary_ios(Swift 3和Swift 2.3在单独的早午餐中)

布古斯特·哈米

是的你可以。

首先,您需要按照此处的说明进行xcode项目设置然后,您将需要创建一个Swift docs中定义的桥接头文件

例子

#ifndef Fun_Bridging_Header_h
#define Fun_Bridging_Header_h

#import "Cloudinary.h"

#endif

不幸的是,他们的Objective-C API无法与Swift完全互操作,即他们的上传API(CLUploader)。

我要做的就是让它在Objective-C中创建一个工厂类

接口(CloudinaryFactory.h)

#ifndef Fun_Wrappy_h
#define Fun_Wrappy_h
#import "Cloudinary.h"

@interface CloudinaryFactory : NSObject  
+ (CLUploader*)create:(CLCloudinary*)cloudinary delegate:(id <CLUploaderDelegate> )delegate;
@end

#endif 

实现(CloudinaryFactory.m):

#import "CloudinaryFactory.h"

@implementation CloudinaryFactory  

+ (CLUploader*)create:(CLCloudinary*)cloudinary delegate:(id <CLUploaderDelegate> )delegate
{
    return [[CLUploader alloc] init:cloudinary delegate:delegate];
}

@end

以及更新的桥接文件

#ifndef Fun_Bridging_Header_h
#define Fun_Bridging_Header_h

#import "CloudinaryFactory.h"

#endif

现在,使用它:

 var image:UIImage? //todo: i'm assuming you would set this somewhere
 @IBAction func uploadGarment(sender: AnyObject) {
    let clouder = CLCloudinary(url: "cloudinary://your:cloudinary@url")

    let forUpload = UIImagePNGRepresentation(image) as NSData
    let uploader = CloudinaryFactory.create(clouder, delegate: self)

    uploader.upload(forUpload, options: ["public_id":"testo"])   

}

希望对您有所帮助!有关更多信息,这是相关的博客文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章