[英]iOS 7 Text to Speech Crash
我正在obj-c中制作一個ios應用程序,我想向我發送電子郵件。 但是應用程序在此行崩潰: [synthesizer speakUtterance:utterance];
這是說電子郵件的方法:
-(void) speakEmails {
NSString *currentEmail = [summariesList objectAtIndex:0];
NSLog(@"Email Being Spoken: %@", currentEmail);
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:currentEmail];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
[synthesizer speakUtterance:utterance];
}
這是NSString currentEmail
是:
Email Being Spoken: {
date = Today;
sender = "tony@starkindustries.com";
summary = "Blah Blah Blah Blah";
type = regular;
}
我不斷收到錯誤-[__NSCFDictionary length]: unrecognized selector sent to instance 0x16528b30
。 我不知道為什么會這樣。 任何幫助表示贊賞。
您正在將currentEmail
設置為字典(解析的JSON)而不是字符串。 嘗試以下方法:
NSString *currentEmail = [[summariesList objectAtIndex:0] objectForKey:@"sender"];
為了確保將來不會發生這種情況,您可以像這樣進行快速檢查:
-(void) speakEmails {
NSString *currentEmail = [summariesList objectAtIndex:0];
NSLog(@"Email Being Spoken: %@", currentEmail);
if (currentEmail != nil)
{
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:currentEmail];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
[synthesizer speakUtterance:utterance];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.