2013-04-14 24 views
0

我正在嘗試在我正在構建的iPhone應用程序中使用Novocaine。我無法弄清楚如何解決這個錯誤我越來越:試圖包含庫時未知的類型名稱

Unknown type name 'RingBuffer' 

這是我的文件結構:

File structure

......與這些文件奴佛卡因下進行的那些拉從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 

我試過一個解決方案,我就發現another question,這表明,這應該工作:

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

但是,這只是給了我Redefinition of 'RingBuffer' as a different kind of symbol.

我怎樣才能解決這個問題,使用RingBuffer

回答

0

找到了答案(或我猜答案的組合):

關注coryalder的設置建議編譯器默認爲Objective-C++,如here所述。

此外,所有.m文件更改爲.mm文件,最後加-fno-objc-arc編譯器標誌的所有.mm文件 - 這是中詳細描述here.

1

RingBuffer是一個C++類。我建議你改變你的Objective-C文件的擴展名從.m.mm這將使他們的Objective-C++

+0

只是這樣做,以及添加'-fno-objc- arc編譯器標記到所有'.mm'文件,這些文件修復了一堆錯誤......但我原來的問題仍然存在。 – varatis

+0

@varatis請注意,您需要更改所有'.m'文件的擴展名,這些文件的#import和indirect #import'DDViewController.h' – epatel

+0

我想通過將項目的編譯器默認值更改爲Objective-C++,但是,這很可能會起作用。 – varatis