我刚刚升级到 Xcode 6 Beta 4,并拥有一个为 Beta 2 中的实时视图创建的框架。由于另一个 swiftbug,我需要使用一些 Obj-C 代码。但升级时,我收到以下错误:
错误:不支持将桥接标头与框架目标一起使用
我没有在发行说明中看到任何内容,也没有找到任何其他迁移路径。还有其他人看到过这个并找到了解决方案吗?
我意识到 Beta 3 消除了对实时视图框架的需求,但如果我能让它发挥作用,这对我来说是有意义的。我可以将其删除作为后备方案,但如果框架在 Beta 4 中没有完全损坏,我更愿意使用框架。
正如错误所述,框架中不允许桥接标头。这从同一框架目标导入代码的部分混合搭配苹果文档对此有暗示。正如他们所说,您需要“在您的头文件中,导入您想要公开给 Swift 的每个 Objective-C 头文件”。
但是,我发现您可能还需要公开这些特定的标头。这个答案回顾了为什么以及如何做到这一点:Swift 编译器错误:“框架模块内有非模块化标头”.
所以,这样做:
- 删除桥接头文件。
- 在框架的构建设置中删除对桥接头文件的引用
- 将必要的标头添加到您的伞文件 ([ProductName].h)
- 在框架的“构建阶段”的“标题”部分中公开包含的文件。
- 清理并重建。
Note:“umbrella 头文件”是一个文件(名为 [ProductName].h),通常代表框架的所有公共头文件。它通常只是框架中包含的其他标头的 #import 语句列表。在 Xcode 中,如果打开 UIKit.h,您将看到一个很好的伞文件示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)