Swift / Objective C中的C ++文件

时间:2015-10-01 14:32:39

标签: objective-c objective-c++

我目前正在开发一个简单的应用程序。

我想使用一些示例应用程序中的库。该库由.mm文件(C ++代码)组成,并在原始项目上完美运行。

但是,当我将库复制到我的文件(目标C)时,我的其他目标文件似乎看不到该文件。此库中定义的所有类和协议根本无法识别。

当我尝试使用库类和协议时,错误是诸如“无类型或协议名称”,“未知类型名称”类名“”。

我花了很多时间搜索,但没有面纱。

提前致谢。

1 个答案:

答案 0 :(得分:0)

Objective-C根本不会理解像class等C ++语言结构。如果你想在你的应用程序中使用这个Objective-C ++代码,那么你的应用程序也需要成为Objective-C ++,它可以是只需将所有源文件从*.m重命名为*.mm即可完成。

但是,对于Swift,您根本不能向它公开C ++,并且只能将它与C或Objective-C集成,因此您不得不为C ++代码创建一个纯Objective-C包装器(即.mm中的实现,但在其头文件中不公开C ++类型。)

相关问题