1

全部,我在我的 XCode 项目中单独使用 .h 文件创建了 .mm 文件,并将以下代码放在那里:

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

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

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

在编译期间,我收到一个错误:“ISO C++ 禁止声明没有类型的 NSSpeechSynthesizer”。

我需要以某种方式包含 NSSpeechSynthesizer.h 文件,但无论我尝试了什么 - 没有任何效果。

有人可以帮忙吗?

[编辑] 看来我需要以某种方式使 XCode 中的标头路径可用,或者只是让 XCode 知道我将使用适当的框架.. [/EDIT]

4

1 回答 1

0

尝试前向声明NSSpeechSynthesizer,就像使用纯 Objective-C 解决方案一样:

#pragma once
class NSSpeechSynthesizer;    // Added
class Speech
{
public:
    Speech();
private:
    NSSpeechSynthesizer *m_speech;
};
于 2012-07-03T12:00:10.413 回答