通知消息给出了错误的结果

时间:2012-01-30 21:14:52

标签: objective-c notifications

我有一个小程序,允许您在文本字段中键入字符串,然后让计算机说出文本。如果你愿意,你也可以阻止它。

此 代码:

- (void)speechSynthesizer:(NSSpeechSynthesizer *)sender didFinishSpeaking:(BOOL)finishedSpeaking
{
    NSLog(@"Complete = %d", finishedSpeaking);
    [stopButton setEnabled:NO];
    [startButton setEnabled:YES];
    [speakLineTableView setEnabled:YES];

}
如果说出整个字符串,则

打印'1',否则打印'0'。

添加了以下代码以允许用户选择说话语音:

- (void)tableViewSelectionDidChange:(NSNotification *)notification
{
    NSUInteger row = [speakLineTableView selectedRow];
    if (row == -1)
    {
        return;
    }
    NSString *selectedVoice = [speakLineVoiceList objectAtIndex:row];
    // The next line causes 'finishedSpeaking' to return 0 first time
    // through. If you play it again, it returns 1 which is correct.
    [speechSynth setVoice:selectedVoice];
    NSLog(@"New voice = %@", selectedVoice);
}

在'setVoice'行中,当你第一次要求程序说话时,它会以'0'结束,第二次是'1',这是正确的。随着它注释它正常工作,当然你不能改变声音。 '1'或'0'不用于任何东西,所以我可以忽略结果,但它告诉我通知消息没有正确执行。任何人都知道为什么会发生这种情况以及如何解决它?

由于

0 个答案:

没有答案