无法重新生成桥头以在目标 C 中使用 swift

Posted

技术标签:

【中文标题】无法重新生成桥头以在目标 C 中使用 swift【英文标题】:can't regenerate bridge header for using swift in objective C 【发布时间】:2017-08-08 11:01:17 【问题描述】:

我更新了一个 Swift 库(更新 .swift 文件并将新的 .swift 文件添加到我的项目中),但在此过程中找不到旧的桥头文件和 Xcode 8.3.3。不提示创建一个新的。

本文显示带有“创建桥接头”按钮的窗口:http://pinkstone.co.uk/how-to-use-swift-classes-in-objective-c/

有什么想法吗?

添加新文件后找不到我的#import "app-Swift.h"。我也不能右键单击并转到定义。

【问题讨论】:

你应该只移动 .h 和 .m 文件而不是组或文件夹 你的意思是.swift?添加或覆盖的文件是 .swift。您是说删除和重新添加带有 .swift 文件的文件夹有问题吗? 是的,您应该只添加 swift 文件,然后将这些文件移动到一个组中 为什么?我想我所做的只是添加/覆盖一些现有的 .swift 并添加新的 .swift 而不触及文件夹。我要仔细检查 您的建议并没有什么不同。还有,为什么会这样? 【参考方案1】:

您可以手动创建Bridging Header

    添加新的头文件。将其命名为 ProjectName-Bridging-Header.h 选择Project -> Target -> Build Setting 在搜索框中搜索"bridging header" 双击Objective-C Bridging Header值部分 拖放您手动创建的ProjectName-Bridging-Header 文件 构建您的项目

Click to show a video tutorial

【讨论】:

我没有将 Obj-C 导入到 swift 我正在将 Swift 导入到 Obj-C。我想要带有所有方法签名的自动生成的标头。正如苹果文档中所说的“当你将 Swift 代码导入到 Objective-C 中时,你依赖于 Xcode 生成的头文件将这些文件公开给 Objective-C。这个自动生成的文件是一个 Objective-C 头文件,它声明了目标中的 Swift 接口。可以将其视为 Swift 代码的总括标头。"

以上是关于无法重新生成桥头以在目标 C 中使用 swift的主要内容,如果未能解决你的问题,请参考以下文章

swift:重新加载视图以在图表中显示新数据

如何删除桥头而不出现错误?

如何重新加载 UIPageViewController 以在 Swift 中重新加载其视图

如何重新加载UIPageViewController以在Swift中重新加载其视图

无法在目标 c 中使用类(swift)

无法在目标 c 中使用类(swift)