在 iOS 应用程序中,我有一个子项目(不是 cocoapods),其中包含 swift 文件和 ObjC 文件(由 swift 文件使用)。 XCode 自动创建了一个桥接文件,但无法构建它,因为框架中显然不允许桥接。我使用的解决方法是将 Objective-C 标头添加到伞文件中,并且它有效。现在我需要使用 ObjC 中的 swift 类。我将
define module
设置为 YES,即生成的文件 Framework-Swift.h 。但是当我尝试将其导入 Objective-C 时,我得到了
无法构建 Objective-C 模块
谷歌搜索后我得到的最接近的是这个答案:
啊,明白了。看起来你正在构建一个混合的 Swift 和 Objective-C pod - 如果是这种情况,Xcode 将尝试导入 在生成的 -Swift.h 标头中。 您需要手动创建标头并添加导入 您想要向 Swift 公开的 Objective-C 类。
CocoaPods 自动生成伞头并导入 在 .modulemap 中,但 Xcode 在生成时不使用它 -Swift.h 头文件
但我不确定需要手动创建什么标头。 关于在 Objective-C 框架中使用 swift 有什么想法或建议吗?两种方式都可以吗?
有一篇很棒而简单的文章总结了这个案例:
#import <ModuleName/ModuleName-Swift.h>
文件中使用 *.m
(如果需要,请在 @class SwiftClass;
文件中使用 *.h
前向声明)NSObject
@objcMembers
public