2013-10-18 22 views
0

为什么我在上运行时遇到错误iOS6虽然我检查了AVSpeechSynthesizer?我知道AVSpeechSynthesizer仅适用于iOS7iOS 6 - 使用AVSpeechSynthesizer发行

if (NSClassFromString(@"AVSpeechSynthesizer")) { 

     AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc] init]; 
     AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"Just what do you think you're doing, Dave?"]; 
     utterance.rate = AVSpeechUtteranceMinimumSpeechRate; // Tell it to me slowly 
     [synthesizer speakUtterance:utterance]; 

} 
+0

@import AVFoundation; – Vjy

回答

1

由于AVSpeechSynthesizer仅适用于iOS 7!在苹果开发者页面AVSpeechSynthesizer类参考:

Availability: Available in iOS 7.0 and later.

+0

是的,我知道它仅在7中可用,如何具有向后兼容性。如果(NSClassFromString(@“AVSpeechSynthesizer”))条件用于版本检查。但仍然失败 – Vjy

2

我看到大致相同的代码类似的问题。 iOS6上的问题是AVSpeechUtteranceMinimumRate不存在,加载代码时会生成动态链接错误。注释掉,代码确实在iOS6上运行,但没有说什么。我想这一定是AV语音代码与其他接口完全不同,你需要找到另一种方式来决定它是否是iOS7。

相关问题