将 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 项目