2012-07-03 82 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