Swift 和 Objective-C 混合编程,当需要在 Swift 中调用 Objective-C 代码时,在 App Target 中,我们依托的是 Objective-C Bridging Header,而在 Framework Target 中,依托的是 unbrella header ,即 Framework 的主头文件。我们需要做如下配置:

  • 在 Build Setting -> Packaging 中将 Defines Module 设置为 YES,如下图所示;

  • 在 unbrella header 中导入需要暴露的 Objective-C 头文件

如果这样配置后,发现编译器还是报 Use of undeclared type '**' 错误,则确认以下两点:

  • unbrella header 和需要暴露的 Objective-C 头文件是否包含在 Framework Target 中,如下图所示;

  • 在 Build Phases -> Headers 中,将 unbrella header 和需要暴露的 Objective-C 头文件放置在 Public 区域中,所下图所示!

这样确认后,基本就没什么问题了。