objective-c - 在 Objective-C 类中导入 Swift 协议(protocol)

标签 objective-c swift

我尝试将名为 AnalyticProtocol 的 Swift 协议(protocol)导入名为 AnalyticFactory 的 Objective-C 类。

protocol AnalyticProtocol
{

}

我从现有的 Objective-C 项目开始(我没有使用 xCode 创建新的 Swift 项目,也没有找到如何在 xCode 6 中将我的 Objective-C 项目配置为 Swift 项目)。

在我的 Swift 文件中,我包含了名为 MyProjectName-Swift.h.h 文件,但编译器返回一个错误,告诉我 它没有存在。 所以,我创建了一个名为 MyProjectName-Swift.h.h 文件,它实际上是空的(我不知道我应该在里面放什么)。

Apple documentation他们说我必须在我的 .m 文件中包含名为 MyProjectName-Swift.h.h 文件。但我需要将它包含在我的 .m 文件中,而不是包含在我的 .h 中。这会不会有问题?

当我尝试编译时出现以下错误::0: error: xxxAnalyticFactory.h:39: cannot find protocol declaration for 'AnalyticProtocol'

还有涉案代码:

@interface AnalyticFactory : NSObject
{
    Class<AnalyticProtocol> _analyticProtocolClass; // The type of the analytic class currently used.
}

我想我不太明白如何将 Swift 协议(protocol)导入到 Objective-C 类中。

有没有人发现我正在做的事情有错误?

最佳答案

您需要将 @objc 属性添加到您的 Swift 协议(protocol)中,如下所示:

@objc protocol AnalyticProtocol {

}

关于objective-c - 在 Objective-C 类中导入 Swift 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24078242/

相关文章:

iOS - UIButton 作为 UIAlertController 上的 subview 未触发事件

swift - 文本字段左 View 图像颜色

ios - 快速添加范围栏

ios - Xcode:图像在缩放时在 UIBarItem 上填充颜色,函数 initeWithImage(UIImage)

ios - spriteKit 中联系人的双重通知

objective-c - 详细信息 View 上的不同文本

objective-c - 书籍布局 NSTextFields——返回页面?

javascript - 将字典值中的整数分配给字符串的字符

ios - swift 3 : Array Value for key

ios - 调整导航 Controller 中自定义 UIBarButtonItem 的大小