将 Swift 导入 Objective-C:未创建 Objective-C 标头“-Swift.h”

Posted

技术标签:

【中文标题】将 Swift 导入 Objective-C:未创建 Objective-C 标头“-Swift.h”【英文标题】:Importing Swift into Objective-C: Objective-C header "-Swift.h" is not created 【发布时间】:2017-12-08 16:46:14 【问题描述】:

在我的 Swift 项目中,我添加了一个新的 cocoa Objective-C 类(UIViewController),Xcode 提示我是否希望它自动生成一个 Objective-C 桥接头文件。

我有点困惑,因为生成的文件是 ProductModuleName-Bridging-Header.h,而根据 Apple documentation,我正在等待获得 ProductModuleName-Swift.h(为了将 Swift 导入到 Objective-C)。

ProductModuleName-Bridging-Header.h 是强制性的,以便能够从 Swift 导入 Objective-C,而不是相反。

对此有何解释?

谢谢

【问题讨论】:

【参考方案1】:

您描述的行为完全正确。您正在将 Obj-C 添加到您的 Swift 项目中,因此 Xcode 提供创建一个 -Bridging-Header.h 文件,该文件允许在您的 Swift 代码中使用导入的 Obj-C。这在您在“将 Objective-C 导入 Swift”下链接的文档中进行了描述。

与桥接头不同,-Swift.h 文件不会出现在您的文件层次结构中,也不是您查看或编辑的内容。它在构建过程中完全由 Xcode 生成和管理。您只需在需要时导入 .m 文件即可。

【讨论】:

啊,原来是隐藏文件?我认为 Apple 应该将此添加到文档中。

以上是关于将 Swift 导入 Objective-C:未创建 Objective-C 标头“-Swift.h”的主要内容,如果未能解决你的问题,请参考以下文章

将 Swift 导入 Objective-C:未创建 Objective-C 标头“-Swift.h”

将 Swift 导入 Objective-C - “使用未声明的标识符”

将 Objective-C 框架(CocoaPod)导入 Swift?

无法使用桥接头将 Objective-C 文件导入 Swift 项目

无法使用桥接头将 Objective-C 文件导入 Swift 项目

将实现协议的 Swift 类导入到 Objective-C 类中