一尘不染

如何添加-Swift.h标头中使用的正向类引用?

swift

我正在将Swift代码集成到一个大型的Objective-C项目中,但是当我的Swift代码引用Objective-C类时,我遇到了问题。例如,假设我有:

  1. 一个叫做Objective-C的类 MyTableViewController
  2. 一个叫做Objective-C的类 DeletionWorkflow

我声明了一个Swift类,如下所示:

class DeletionVC: MyTableViewController {
  let deleteWorkflow: DeletionWorkflow

  ...
}

如果现在尝试通过导入ProjectName-Swift.hObjective-
C代码来使用此类,则对于MyTableViewController和都会出现未定义的符号错误DeletionWorkflow

我可以通过导入DeletionWorkflow.h以及MyTableViewController.h在导入之前解决该单个源文件中的问题,ProjectName- Swift.h但这并不能扩展到我希望我的Swift和Objective-C经常交互的大型项目中。

ProjectName-Swift.h当我尝试在我的应用程序中使用Objective-
C代码中的Swift类时,是否有办法添加前向类引用,以免发生这些错误?


阅读 271

收藏
2020-07-07

共1个答案

一尘不染

这有点愚蠢,但听起来至少是目前苹果打算的“解决方法”。从互操作性指南中

如果您在Swift代码中使用自己的Objective-
C类型,请确保在将Swift生成的标头导入.m您要从中访问Swift代码的Objective-C 文件之前,先导入这些类型的Objective-
C标头。

这个devforums主题中,有人提到他们已经在Radar中提交了一个错误。您可能也应该这样做。

2020-07-07