2014-04-07 11 views
6

Der folgende Code:NSNumberFormatter: eine Zahl mit Rechtschreibung und Partikel (British Schreibweise)

AVSpeechSynthesizer * speechSynthesizer = [[AVSpeechSynthesizer alloc] init]; 
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString: @"112"]; 
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-GB"]; 
speechSynthesizer speakUtterance:utterance]; 

Ergebnisse mit dem Gerät zu sagen: "hundert und zwölf" (britische Schreibweise)

aber wenn stattdessen transkribieren Sie die Nummer 112:

NSString * wordNumber = nil; 
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
[numberFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en-GB"]]; 
[numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle]; 
wordNumber = [numberFormatter stringFromNumber:@(112)]; 

jetzt wordNumber enthält „112“ (ohne die und Partikel). So

:

@"112" -> AVSpeechSynthesizer -> "one hundred and twelve" 
@"112" -> NSNumberFormatter -> "one hundred twelve" 

Wie kann ich transkribieren eine Reihe mit den und Teilchen, das heißt, britische Rechtschreibung?

+0

Argument zu 'stringFromNumber' sollte anstelle von String-Literal' @ 112' sein. – blackbird

+0

mögliches Duplikat von [Ist es möglich, Zahlen in Wörtern mit einem Trennzeichen zu buchstabieren?] (Http://stackoverflow.com/questions/12250126/is-it-possible-to-spell-out-numbers-in-words- mit einem Trennzeichen) –

Antwort

0

Huh, kannst du nicht dies nur tun?

AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"112"]; 
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-GB"]; 
NSString *transliteration = utterance.speechString;