C++ 和Objective-C 混合编码 注意事项

来源:互联网 发布:bim设计方案优化 编辑:程序博客网 时间:2024/04/30 17:57

我们都知道,在Objective-C (.m)文件中引入一个C++的文件(.cpp)的头文件时,要将该.m文件更改为.mm文件,例如:

 

 

但是AQRecorder      *recorder;这一行报错:expected specifier-qualifier-list before AQRecorder

 

看到这个我就奇怪了,已经将文件类型改为.mm了,为什么还是没有识别C++类.

 

经过很长时间的查看代码,发现,原来调用MixerHostViewController.h的文件MixerHostAppDelegate是.m类型的,尝试着将文件名改为.mm后,编译通过。

 

由此,可以知道,一旦要在某个OC 类中引用C++头文件,那么调用这个OC的头文件的 类也要使用.mm的文件名(算废话么?)