2012-07-03 102 views
1

ALL, 我在XCode項目創建.mm文件單獨與.h文件中,把下面的代碼有:如何修復編譯器錯誤

#pragma once 
class Speech 
{ 
public: 
    Speech(); 
private: 
    NSSpeechSynthesizer *m_speech; 
}; 

#import <AppKit/NSSpeechSynthesizer.h> 
#include "speech.h" 

Speech::Speech() 
{ 
    m_speech = [NSSpeechSynthesizer new]; 
} 

在編譯過程中我m出現錯誤:「ISO C++禁止聲明NSSpeechSynthesizer沒有類型」。

我需要以某種方式包含NSSpeechSynthesizer.h文件,但無論我嘗試 - 沒有任何工作。

有人可以幫忙嗎?

[編輯] 它看起來像我需要以某種方式使路徑XCode中可用的頭,或者只是做了XCode知道,我會用一個適當的框架.. [/編輯]

+0

我不進的XCode,但似乎編譯器不知道'NSSpeechSynthesizer' - 這哪裏是定義?你是否缺少任何頭文件? –

+0

你的第二個列表不是C++,但編譯器說它認爲它是。嘗試將源類型更改爲Objective C – Adam

+0

您不會說在第一個文件或第二個文件中哪一行出現編譯錯誤。我的猜測是最底層的,但你應該明確地說。 –

回答

0

嘗試着聲明NSSpeechSynthesizer,就像你要做一個純粹的Objective-C的解決方案做:

#pragma once 
class NSSpeechSynthesizer; // Added 
class Speech 
{ 
public: 
    Speech(); 
private: 
    NSSpeechSynthesizer *m_speech; 
}; 
+0

@troyanfoe,是的,就是這樣!沒有更多的錯誤。謝謝。 – Igor