0

我正在尝试在我正在构建的 iPhone 应用程序中使用Novocaine 。我不知道如何解决我遇到的这个错误:

Unknown type name 'RingBuffer'

这是我的文件结构:

文件结构

... Novocaine 下的那些文件是从 Github 存储库中为 Novocaine 提取的文件。这是我的 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

我尝试了在另一个问题上找到的解决方案,这表明这应该可行:

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

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

我该如何解决这个问题并使用RingBuffer

4

2 回答 2

1

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

于 2013-04-14T22:19:07.737 回答
0

找到了答案(或者我猜是答案的组合):

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

此外,将所有.m文件更改为.mm文件,最后将-fno-objc-arc编译器标志添加到所有 .mm 文件中——这里有详细描述

于 2013-04-14T22:27:05.693 回答