我正在尝试将代码从AurioTouch项目移动到我的项目中。 但我有很多错误:
Unknown type name 'class'; did you mean 'Class'?
例如,在文件FFTBufferManager.h中:
#include <AudioToolbox/AudioToolbox.h>
#include <libkern/OSAtomic.h>
#include "SpectrumAnalysis.h"
class FFTBufferManager
{
public:
FFTBufferManager(UInt32 inNumberFrames);
~FFTBufferManager();
我尝试将编译器更改为LLVM GCC 4.2,但它会产生很多其他错误:
Expected '=', ',', ';', 'asm' or '__attribute__' before 'FFTBufferManager'
我做错了什么?
答案 0 :(得分:8)
要混合使用C ++和Objective-C,您需要使用.mm extension。但是,如果您的类只是C ++(并且只包含C / C ++标题),那么您可以使用普通的.cpp
扩展名。
.mm
除了Objective-C和C代码之外,具有此扩展名的源文件还可以包含C ++代码。这个扩展应该 仅当您实际引用C ++类或功能时才使用 你的Objective-C代码。