我可以/应该有多个 Objective-C 桥接头吗?
Posted
技术标签:
【中文标题】我可以/应该有多个 Objective-C 桥接头吗?【英文标题】:Can/Should I have more than one Objective-C bridging header? 【发布时间】:2017-05-10 15:24:00 【问题描述】:我正在尝试在我的应用中实现一些新的 Siri 集成。我有一个旧的 Objective-C 标头,我一直在整个项目中使用它,但现在这个新的 Siri Intents 目标也需要一个标头。所以现在我有两个objective-c 桥接头,一个用于主项目及其目标,另一个用于Siri Intents 目标。
它没有像我预期的那样工作。我收到“未解决的标识符使用”错误,指的是我尝试导入的一个 Objective-C 类。
在我的构建设置中:
项目:主桥接头目录 目标: selfTitledTarget:主桥接头目录 SiriIntent:新桥接头目录为了安全起见,我的主要桥接头包含新桥接头的所有导入。
在开始新的 Siri 实施之前,我没有遇到这个问题。我有另一个项目,它只有 Siri 实现并且工作正常,所以我猜我的问题根源在于我有多个桥接头?
【问题讨论】:
【参考方案1】:项目:主桥接头目录
目标:
selfTitledTarget:主桥接头目录
SiriIntent:新桥接头目录
这没有任何意义。项目没有桥接头;目标做。而且它们的桥接头构建设置不是目录;它们是文件。
因此,第一步是确保您只有两个桥接头,每个目标一个。
之后,我建议在两个桥接头中导入所有 Objective-C .h
文件。它不会有伤害,它应该可以解决你的问题。
【讨论】:
【参考方案2】:这不是标题:每个目标一个桥接标题正是它应该如何工作的。
问题是引用的类没有被编译到意图目标中。检查文件检查器 (⌘⌥1) 中的目标成员资格窗格,并将共享源文件设置为包含在需要它们的所有目标中。
【讨论】:
以上是关于我可以/应该有多个 Objective-C 桥接头吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用桥接头在基于 Swift 的项目中导入 Objective-C++ 类吗?