2016-07-27 6 views
1

Я использую NSNumberFormatter для форматирования цены для передачи голоса. Я обнаружил, что он отлично работает, когда не используется разделитель тысяч, и для определенного списка валют, таких как US $, €, £, однако он, похоже, не работает для каких-либо других валют, например. CA $ произносится как C-A-Dollar ... Каков правильный способ настройки NSNumberFormatter, чтобы получить достойный выход, подходящий для передачи голоса?Маркировка доступности формата по цене

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

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

Как Карл упомянуто ниже, .CurrencyPluralStyle могут быть использованы. Он форматирует валюту в зависимости от языка и игнорирует все остальные настройки, даже usesGroupingSeparator. С некоторыми ручными работами это может быть подходящей альтернативой!

Пример ниже:

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)") 

Производит:

1,000.50 канадских долларов

+0

вы хотите, чтобы он говорил как канадский доллар вместо C-A $? –

+0

@TejaNandamuri yes – Andy

+0

Если вы установили код валюты в CAD, он отображает только 100 долларов США, но не как CA $ 100. Как вы получили часть СА? –

ответ

2

ли NSNumberFormatterCurrencyPluralStyle удовлетворить ваши потребности? Это только iOS9 и позже.

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. - [Из обзора] (/ review/low-quality-posts/13973938) –

+0

@BeauNouvelle, но это привело меня к правильному решению. – Andy

+0

Я обновил свой ответ на примере. – Andy

Смежные вопросы