尝试包含库时的未知类型名称

时间:2013-04-14 21:50:14

标签: ios objective-c

我正在尝试在我正在构建的iPhone应用程序中使用Novocaine。我无法弄清楚如何解决这个错误:

Unknown type name 'RingBuffer'

这是我的文件结构:

File structure

...诺瓦卡因下的那些文件是从Github回购诺瓦卡因的文件。这是我的DDViewController头文件。

#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
#import "UICoordButton.h"
#import "Novocaine.h"
#import "RingBuffer.h"
#import "AudioFileReader.h"
#import "AudioFileWriter.h"

@interface DDViewController : UIViewController
{
    RingBuffer *ringBuffer;
    Novocaine *audioManager;
    AudioFileReader *fileReader;
    AudioFileWriter *fileWriter;
}
- (IBAction)changeColor:(id)sender;
- (IBAction)changeColor2:(id)sender;
@end

我尝试过在another question上找到的解决方案,这表明这应该有效:

@class RingBuffer;
@interface DDViewController : UIViewController
{
...

但这只是给了我Redefinition of 'RingBuffer' as a different kind of symbol.

如何解决此问题并使用RingBuffer

2 个答案:

答案 0 :(得分:1)

RingBuffer是一个C ++类。我建议您将Objective-C文件的扩展名从.m更改为.mm,这将使它们成为Objective-C ++

答案 1 :(得分:0)

找到答案(或者我想答案的组合):

按照coryalder的建议,将编译器默认设置为Objective-C ++,如here所述。

此外,将所有.m个文件更改为.mm个文件,最后将-fno-objc-arc个编译器标志添加到所有.mm文件中 - 详细描述here. < / p>