2012-07-03 12 views
1

ALL, Я создал .mm файл в моем XCode проект в одиночку с .h файл и поместить следующий код там:Как исправить ошибку компилятора

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

и

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

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

Во время компиляции I» m получение ошибки: «ISO C++ запрещает объявление NSSpeechSynthesizer без типа».

Мне нужно каким-то образом включить файл NSSpeechSynthesizer.h, но все, что я пробовал, ничего не работает.

Может кто-нибудь помочь?

[EDIT] Похоже, мне нужно как-то сделать путь к заголовку, имеющихся в XCode, или просто сделать XCode знать, что я буду использовать соответствующие рамки .. [/ EDIT]

+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

Смежные вопросы