如何在ObjC框架中使用Swift协议

时间:2014-06-08 04:47:34

标签: protocols swift

我刚刚开始在我的ObjC框架项目中添加Swift,因为它非常新,解决方案直接与CloudKit的差距,因此可能有趣的是逐步迁移到Swift代码。

我认为我从简单的协议开始。

我做了以下事情: - 我创建了一个Swift文件,如你所知,框架没有bridghing标头 - 在此文件中添加了我的协议

并知道我喜欢在课堂上使用它但是如何使用它? 类的解决方案很简单,您只需定义一个前向声明。但那是关于协议吗?

在他们看来,这是我必须迁移的最后一个元素,或者你知道一种方法吗?

更新:

我忘了提到,我标记了协议@objc,因为一般来说可以在ObjC中使用Swift协议,但我现在只看到框架中的限制

1 个答案:

答案 0 :(得分:1)

以下是我的项目名称SwiftProtocol中的示例:

<强> Renderable.swift

@objc protocol Renderable
{
    @objc func render()
}

<强> Triangle.h

#import "SwiftProtocol-Swift.h"    // This is very important!

@interface Triangle : NSObject <Renderable>

@end

<强> Triangle.m

@implementation Triangle

- (void)render
{
   // Do some rendering
}

@end