我可以使用桥接头在基于 Swift 的项目中导入 Objective-C++ 类吗?

Posted

技术标签:

【中文标题】我可以使用桥接头在基于 Swift 的项目中导入 Objective-C++ 类吗?【英文标题】:Can I import Objective-C++ classes in a Swift based project using bridging header? 【发布时间】:2016-03-02 17:03:48 【问题描述】:

我知道如果我想在 Swift 中使用 Objective-C 类,我必须使用桥接头。我知道我可以通过 .mm 扩展名在同一个文件中使用 Objective-C 和 C++。

现在我可以拥有一个使用 Objective-C++ 编写的类的文件并通过桥接头将其导入基于 Swift 的项目吗?

我知道 Stack Overflow 上有人问过类似的问题,但用户问他/她是否可以在同一个 FILE 中使用 Swift 和 C++,而不是通过桥接头进行项目。

【问题讨论】:

我现在发布答案。 看看这个问题***.com/questions/32541268/… 谢谢,这是我看过的问题,但没有注意到答案。谢谢 【参考方案1】:

好吧,我现在觉得自己很愚蠢,但我应该尝试一下,而不是仅仅在 Stack Overflow 上询问并期待答案。并不是我懒惰,而是我已经习惯了在 Stack Overflow 上提问,以至于我的本能是一遇到问题就在 Stack 上提问,而不是先尝试自己找到解决方案。

答案:

是的,它有效!您可以通过桥接头在 Swift 中使用 Objective-C++ 类。现在我没有做任何复杂的事情,只是在 Objective-C++ 类中实现了一个方法,并将该文件包含在桥接头中,并在 ViewController.Swift 中调用该方法,它工作得非常好。我不知道所有 C++ 语法是否都可以与 Swift 类完美配合,但我保证它最应该。所以最终的答案是,是的,它有效!

【讨论】:

以上是关于我可以使用桥接头在基于 Swift 的项目中导入 Objective-C++ 类吗?的主要内容,如果未能解决你的问题,请参考以下文章

在桥接头中导入头文件导致的 Swift 编译器错误

在“发布”构建配置中看不到在桥接头中导入的头,但在“调试”构建配置中可见

在桥接头中导入不适用于特定的 Parse Facebook

Firebase 升级后无法在 Xcode 中导入桥接头文件

在 Swift 框架中导入 CommonCrypto

在swift中导入swift链接的objc类