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