我目前正在开发一个简单的应用程序。
我想使用一些示例应用程序中的库。该库由.mm文件(C ++代码)组成,并在原始项目上完美运行。
但是,当我将库复制到我的文件(目标C)时,我的其他目标文件似乎看不到该文件。此库中定义的所有类和协议根本无法识别。
当我尝试使用库类和协议时,错误是诸如“无类型或协议名称”,“未知类型名称”类名“”。
我花了很多时间搜索,但没有面纱。
提前致谢。
答案 0 :(得分:0)
Objective-C根本不会理解像class
等C ++语言结构。如果你想在你的应用程序中使用这个Objective-C ++代码,那么你的应用程序也需要成为Objective-C ++,它可以是只需将所有源文件从*.m
重命名为*.mm
即可完成。
但是,对于Swift,您根本不能向它公开C ++,并且只能将它与C或Objective-C集成,因此您不得不为C ++代码创建一个纯Objective-C包装器(即.mm
中的实现,但在其头文件中不公开C ++类型。)