2014-04-07 13 views
6

Il seguente codice:NSNumberFormatter: che spiegano un numero con E di particelle (spelling britannico)

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

risultati in con il dispositivo dicendo: "un centinaio di e dodici" (spelling britannico)

ma se invece si traslitterare il numero 112:

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

ora wordNumber contiene "cento dodici" (senza la e particella).

Quindi:

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

Come posso traslitterare un numero con le e particelle, cioè, l'ortografia inglese?

+0

L'argomento su 'stringFromNumber' deve essere' @ 112' anziché letterale stringa. – blackbird

+0

possibile duplicato di [È possibile compitare i numeri in parole con un separatore?] (Http://stackoverflow.com/questions/12250126/is-it-possibile-per-spell-out-numbers-in-words- con-un-separatore) –

risposta

0

Eh, non puoi semplicemente fare questo?

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