1

NSTextField「システム」を使用してユーザーが入力したテキストを読み上げsay、ターミナルでコマンドを使用する Mac アプリケーションを作成しようとしています 。ただし、Xcode はエラーを出し続けます。

- (IBAction)speak:(id)sender{
    system("say %@", [textinput stringValue]);
}

*textinput は のIBOutletですNSTextField

4

2 に答える 2

4

システムは単一の char* を引数として受け取るため、システムに渡す前にコマンド文字列をフォーマットする必要があります。

- (IBAction)speak:(id)sender {
    NSString *command = [NSString stringWithFormat:@"say %@", [textinput stringValue]];
    system([command UTF8String]);
}
于 2012-08-25T09:46:59.960 に答える
3

システム コマンドを呼び出す必要はなく、Cocoa 音声合成 API を直接使用するだけです。例えば

NSSpeechSynthesizer* speechSynthesizer = [[NSSpeechSynthesizer alloc] init];
[speechSynthesizer startSpeakingString:[textinput stringValue]];

その後、音声の設定やその他の設定の調整も簡単です。

于 2012-08-25T14:14:36.587 に答える