Can/Should我有多个Objective-C桥接header?

Can/Should I have more than one Objective-C bridging header?

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

它没有像我预期的那样工作。我收到 "unresolved use of identifier" 错误,指的是我正在尝试导入的 objective-C 类 之一。

在我的以下构建设置中:

为了安全起见,我的主要桥接 header 包括所有新桥接 header 的导入。

在开始新的 Siri 实现之前,我没有遇到过这个问题。我有另一个项目,它只是 Siri 的实现,那个工作正常,所以我猜我的问题是因为我有多个桥接 headers?

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

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

Project: directory for main bridging header

Targets:

  • selfTitledTarget: directory for main bridging header

  • SiriIntent: directory for new bridging header

这毫无意义。项目没有桥接 header;目标做。他们的桥接 header 构建设置不是目录;它们是文件。

因此,第一步是确保只有两个桥接 header,每个目标一个。

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