【问题标题】:How to use a Swift protocol in ObjC Framework如何在 ObjC 框架中使用 Swift 协议
【发布时间】:2014-06-08 04:47:34
【问题描述】:

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

我坚持我从一些简单的东西开始,一个协议。

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

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

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

更新:

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

【问题讨论】:

  • 在您的 Obj-C 实现 (.m) 文件中,您是否添加了 #import <##Your-Project-Name##>-Swift.h

标签: protocols swift


【解决方案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

三角形.m

@implementation Triangle

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

@end

【讨论】:

    猜你喜欢
    • 2018-09-04
    • 1970-01-01
    • 2017-06-09
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多