我有一个带有1个Swift类的Objective-C项目。这个类使用的是一个也用Swift编写的框架。 (使用CocoaPods来包含框架)
我的问题是-Swift.h文件正在导出我的扩展,这些扩展遵循框架中的协议。现在,当我尝试在Objective-C中导入-Swift.h文件时,它抱怨无法找到协议定义。
我不希望导出这些扩展名。它们仅用于本课程。我不能使用private或fileprivate来声明协议一致性的扩展。我还尝试在扩展声明之前添加@nonobjc(将警告级联到我的方法中)并且它仍然被导出。
以下是我的扩展程序:
2 ?- length(List, 3), List ins 1..3 \/ 5..6 \/ 8, label(List).
List = [1, 1, 1] ;
List = [1, 1, 2] ;
List = [1, 1, 3] ;
List = [1, 1, 5] ;
List = [1, 1, 6] ;
List = [1, 1, 8] ;
List = [1, 2, 1] ;
List = [1, 2, 2]
...
并生成标题:
extension MessagingExperience: MessagingDelegate {
...
}
extension MessagingExperience: MessagingNotificationDelegate {
...
}
通过在Objective-C类中包含-Swift.h而产生的错误:
无法找到“MessagingDelegate”的协议声明
无法找到'MessagingNotificationDelegate'的协议声明
有没有办法阻止它出现在标题中?
感谢。
答案 0 :(得分:0)
在MessagingExperience.swift中创建一个符合框架中定义的协议的私有类。因为它是私有类,所以不会在生成的-Swift.h中指定协议。