2016-07-27 21 views
1

Ich verwende NSNumberFormatter, um den Preis für Voice-over zu formatieren. Ich fand, dass es gut funktioniert, wenn kein Tausendertrennzeichen verwendet wird und für bestimmte Listen von Währungen wie US $, €, £, aber es scheint nicht für andere Währungen zu funktionieren, z.B. CA $ wird als C-A-Dollar ausgesprochen ... Was ist der richtige Weg, um NSNumberFormatter zu konfigurieren, um einen vernünftigen Ausgang zu erhalten, der für Voice-Over geeignet ist?Format Zugänglichkeit Etikett für Preis

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
formatter.numberStyle = NSNumberFormatterCurrencyStyle; 
formatter.usesGroupingSeparator = NO; 
formatter.currencyCode = @"NOK"; 

view.accessibilityLabel = [formatter stringFromNumber:@100]; 

Wie unten erwähnt, kann .CurrencyPluralStyle verwendet werden. Es formatiert die Währung basierend auf dem Gebietsschema und ignoriert alle anderen Einstellungen selbst usesGroupingSeparator. Mit manueller Arbeit kann es eine geeignete Alternative sein!

Beispiel unten:

let formatter = NumberFormatter() 
formatter.numberStyle = .currencyPlural 
formatter.usesGroupingSeparator = false // being entirely ignored :/ 
formatter.locale = Locale(identifier: "en_CA") 

let str = formatter.string(from: 1000.50)! 

print("\(str)") 

Produziert:

1,000.50 kanadischen Dollar

+0

Sie wollen es als kanadischer Dollar anstelle von C-A $ sagen? –

+0

@TejaNandamuri ja – Andy

+0

Wenn Sie den Währungscode auf CAD setzen, werden nur die $ 100, nicht aber die CA $ 100 angezeigt. Wie hast du den CA-Teil bekommen? –

Antwort

2

Hat Ihre Bedürfnisse NSNumberFormatterCurrencyPluralStyle treffen? Das ist aber iOS9 und später.

+0

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/13973938) –

+0

@BeauNouvelle aber es führte mich zur richtigen Lösung. – Andy

+0

Ich habe meine Antwort mit einem Beispiel aktualisiert. – Andy