我通常在桥接头文件中有一行代码可以使所有这些工作正常运行:
#import 我应该把它放在项目的哪个位置才能使它像以前在桥接头文件中那样正常工作?
我在Apple关于混合Swift和Objective-C的文档中发现了这个:
如果你正在编写混合语言框架,可能需要从 Swift 访问你的 Objective-C 代码,也需要从 Objective-C 访问你的 Swift 代码。
将一组 Objective-C 文件导入到与 Swift 代码相同的框架目标中,你需要将这些文件导入到该框架的 Objective-C umbrella header 中。要从同一框架中的 Objective-C 代码导入到 Swift,请确保 Packaging 中的 Build Settings 中,该框架目标的 Defines Module 设置为 Yes。在你的 umbrella header 文件中,导入每个你希望暴露给 Swift 的 Objective-C header 文件。例如:OBJECTIVE-C import <XYZ/XYZCustomCell.h>
import <XYZ/XYZCustomView.h>
import <XYZ/XYZCustomViewController.h>。我认为最相关的短语是“you’ll need to import those files into the Objective-C umbrella header for the framework”。
但这个文件是什么,如何创建它?
苹果的文档中提到了早期的内容(在一个表格中):
Objective-C 代码
导入 Swift
#import "Header.h"
好吧,我试着创建一个名为“Header.h”的文件并导入它,但那行不通。我不知道他们想说什么。我在构建设置中找不到任何“伞形”东西。
所以我的问题是,我该如何在我的 Swift 项目中导入这个文件(#import <Google/Analytics.h>),以便它可以像在正常项目的桥接头文件中那样查看 Google Analytics cocoapod 框架?
更新:
我现在认为,也许 Objective-C 的桥接头文件就是与项目同名的 .h 文件。我已经尝试在那里添加导入语句,但出现的错误是:
!在框架模块“JBS”内包含非模块化标头