私はMac OS Xですべての異なる音声を取得しようとしているアプリケーションを作成しており、性別で並べ替えています。私は、各性別(Male、Female、Novelty)の声を入れるために3つの可変配列を作成し、列挙型を使用してそれぞれを通過させて正しい配列に入れています。残念ながら、それは動作していません。ノベルティ・アレイを除く全てが空になり、ノベルティ・アレイは1つの声だけを持つ。誰かが私が間違っていることを見ていますか?私は以下のコードを掲載しました:Mac OS Xのテキスト音声ジェンダー
NSArray* voices = [NSSpeechSynthesizer availableVoices];
for(NSString* x in voices){
NSDictionary* voiceInfo = [NSSpeechSynthesizer attributesForVoice:x];
NSString* voiceName = [voiceInfo objectForKey:NSVoiceName];
NSString* voiceGender = [voiceInfo objectForKey:NSVoiceGender];
maleVoices = [[NSMutableArray alloc] init];
femaleVoices = [[NSMutableArray alloc] init];
noveltyVoices = [[NSMutableArray alloc] init];
if (voiceGender == NSVoiceGenderMale){
[maleVoices addObject:voiceName];
} else if (voiceGender == NSVoiceGenderFemale) {
[femaleVoices addObject:voiceName];
} else {
[noveltyVoices addObject:voiceName];
}
}
'=='の代わりに 'isEqual:'メソッドを使って 'voiceGender'変数を比較しようとしましたか? –