2013-10-18 2 views
0

AVSpeechSynthesizer을 확인했지만 iOS6에서 실행하면 왜 오류가 발생합니까? 나는 AVSpeechSynthesizer이 아이폰 OS 7 만이기 때문에 AVSpeechSynthesizer이 iOS7에iOS 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 클래스 참조에 대한 사과 개발자 페이지에서 :

Availability: Available in iOS 7.0 and later.

+0

예, 이전 버전과의 호환성을 유지하는 방법은 7에서만 가능하다는 사실을 알고 있습니다. if (NSClassFromString (@ "AVSpeechSynthesizer")) 조건은 버전 확인을위한 것입니다.하지만 여전히 실패합니다. – Vjy

2

나는 거의 동일한 코드와 유사한 문제를 참조하십시오. iOS6의 문제점은 AVSpeechUtteranceMinimumRate이 존재하지 않으며 코드가로드 될 때 동적 링크 오류가 생성된다는 것입니다. 그 줄을 주석 처리하고 코드는 실제로 iOS6에서 실행되지만 아무 말도하지 않습니다. AV 음성 코드가 다른 인터페이스와 다르게 수행되어야하며 iOS7인지 다른 방법을 찾아야합니다.