Ios 在Objective-C模块中使用swift时,无法生成Objective-C模块
在iOS应用程序中,我有一个子项目(不是cocoapods),其中包括一个swift文件和一个ObjC文件(swift文件使用)。XCode自动创建了一个桥接文件,但无法构建它,因为框架中不允许明显的桥接。我使用的解决方法是将objective-c头添加到伞形文件中,它成功了。现在我需要使用ObjC中的swift类。我已将生成的文件Framework Swift.hIos 在Objective-C模块中使用swift时,无法生成Objective-C模块,ios,objective-c,swift,xcode,bridging-header,Ios,Objective C,Swift,Xcode,Bridging Header,在iOS应用程序中,我有一个子项目(不是cocoapods),其中包括一个swift文件和一个ObjC文件(swift文件使用)。XCode自动创建了一个桥接文件,但无法构建它,因为框架中不允许明显的桥接。我使用的解决方法是将objective-c头添加到伞形文件中,它成功了。现在我需要使用ObjC中的swift类。我已将生成的文件Framework Swift.hdefine module设置为YES。但是当我尝试在objective-c中导入它时,我得到 无法生成Objective-C模块
define module
设置为YES。但是当我尝试在objective-c中导入它时,我得到
无法生成Objective-C模块
谷歌搜索后我得到的最接近的答案是:
啊,明白了。看起来你正在构建一个混合的Swift和Objective-C
pod-如果是这种情况,Xcode将尝试导入
在生成的-Swift.h标头中。
您需要手动创建标题,并为标题添加导入
要向Swift公开的Objective-C类
CocoaPods自动生成伞头并将其导入
在.modulemap中,但Xcode在生成
-Swift.h头球
但我不确定需要手动创建什么标题。
关于在objective-c框架中使用swift有什么想法或建议吗?在这两种情况下?有一种方法可以解决这个问题:
*.m
文件中导入(如果需要,在*.h
文件中使用@class SwiftClass;
转发声明)
NSObject
@objcMembers
在包含多个目标的Swift项目中使用Swift吊舱时,我也遇到了类似的问题。根本没有Objective-C代码。我试图清除构建文件夹、吊舱缓存和派生数据,但没有任何效果 解决方案: 打开包含模块代码的目标的生成设置。将“安装Objective-C兼容性头”设置为“否”
对我来说,答案是将其设置为“否”,然后再将其设置为“是”。对我不起作用