根据文档,当您将 Swift 代码导入 Objective-C 时,您依赖于 Xcode 生成的头文件将这些文件公开给 Objective-C。这个自动生成的文件是一个 Objective-C 头文件,它在你的目标中声明了 Swift 接口。它可以被认为是 Swift 代码的总括标题。此标头的名称是您的产品模块名称,后跟"-Swift.h"
.
默认情况下,生成的标头包含标有 public 修饰符的 Swift 声明接口。如果您的应用程序目标具有 Objective-C 桥接头标头,它还包含标有 internal 修饰符的那些。标有 private 修饰符的声明不会出现在生成的标头中。私有声明不会暴露给 Objective-C,除非它们显式地用@IBAction
、@IBOutlet
或标记@objc
。如果您的应用程序目标是在启用测试的情况下编译的,则单元测试目标可以访问任何带有 internal 修饰符的声明,就好像它们是使用 public 修饰符声明的一样,方法是在产品模块导入语句前添加 @testable。
你不需要做任何特别的事情来创建生成的头文件——只需导入它以在你的 Objective-C 代码中使用它的内容。请注意,生成的标头中的 Swift 接口包含对其中使用的所有 Objective-C 类型的引用。如果您在 Swift 代码中使用自己的 Objective-C 类型,请确保在将 Swift 生成的标头导入要从中访问 Swift 代码的 Objective-C .m 文件之前导入这些类型的 Objective-C 标头。
有关更多详细信息,请遵循此Importing Swift into Objective-C