可以/我应该有多个Objective-C桥接头吗?

时间:2017-05-10 15:24:01

标签: objective-c swift xcode bridging-header

我正在尝试在我的应用中实现一些新的Siri集成。我有一个旧的Objective-C标题,我一直在我的项目中使用,但现在这个新的Siri Intents目标也需要一个标题。所以现在我有两个objective-c桥接头,一个用于主项目及其目标,另一个用于Siri Intents目标。

它不像我预期的那样工作。我正在获取“未解析的标识符使用”错误,指的是我正在尝试导入的一个Objective-C类。

在以下构建设置中:

  • 项目:主桥接头的目录
  • 目标:
    • selfTitledTarget:主桥接标题的目录
    • SiriIntent:新桥接标题的目录

我的主要桥接标题包含所有新桥接标头的导入,只是为了安全。

在开始新的Siri实现之前,我没有遇到这个问题。我有另一个项目,只有Siri实现,而且一个工作正常,所以我猜我的问题根源于我有多个桥接头的事实?

2 个答案:

答案 0 :(得分:2)

  

项目:主桥接头的目录

     

目标:

     
      
  • selfTitledTarget:主桥接标题的目录

  •   
  • SiriIntent:新桥接标题的目录

  •   

这没有任何意义。项目没有桥接头;目标呢。他们的桥接头部构建设置不是目录;它们是文件。

所以,第一步是确保你只有两个桥接头,每个目标一个。

之后,我建议在两个桥接头中导入所有Objective-C .h文件。它不会伤害它,它应该解决你的问题。

答案 1 :(得分:1)

它不是标题:每个目标的一个桥接标题正是它应该如何工作。

问题是引用的类没有被编译到intent目标中。检查文件检查器中的目标成员资格窗格(⌘1),并将共享源文件设置为包含在他们需要的所有目标中。