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

Can I import Objective-C++ classes in a Swift based project using bridging header?

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

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

我知道 Stack Overflow 上有人问过类似的问题,但用户问 he/she 是否可以在同一个文件中使用 Swift 和 C++,而不是通过桥接 [=25] =].

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

答案:

是的,它有效!您可以通过桥接 header 在 Swift 中使用 Objective-C++ class。现在我没有做任何复杂的事情,只是在 Objective-C++ class 中实现了一个方法并将文件包含在桥接 header 中并调用了 ViewController.Swift 中的方法和它工作得很好。我不知道是否所有 C++ 语法都能与 Swift classes 完美配合,但我保证大多数情况下应该如此。所以最后的答案是,是的,它有效!