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

我尝试将名为 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/

相关文章:

objective-c - 是否可以更改 UIButtons 背景颜色?

iphone - 检测特定的 iPhone/iPod touch 型号

c - 先学C再学Objective-C

ios - 链接器命令失败,退出代码 1(使用 -v 查看调用),Xcode 8,Swift 3

objective-c - Info.plist 上传错误中的 CFBundleVersion

ios - 在 ios9 中替换 stringByAddingPercentEscapesUsing

objective-c - 在 Objective-C 中向 nil 发送消息

objective-c - 如何在 Objective-C 中创建和使用队列?

ios - 如何在 UIView 中加载 xib 文件

iphone - Objective-C 拆分()?