Действительно ли возможно получить обозначение денежной единицы из кода валюты?

Мое приложение для iPhone форматирует NSDecimalNumber как валюту с помощью setCurrencyCode, однако другой отображения на экране просто обозначение денежной единицы. Вместо того, чтобы хранить и код валюты и символ, действительно ли возможно получить символ на основании кода? Я думал, что следующее могло бы работать, но оно просто возвращает символ как $:

currencyCode = [dictPrices valueForKey:@"currencyCode"];
NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setCurrencyCode:currencyCode];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];

NSString *currencySymbol = [numberFormatter currencySymbol];
6
задан Dave Hunt 30 January 2012 в 17:53
поделиться

1 ответ

Вы хотите устанавливать языковой стандарт, а не код валюты. Тогда вы получите ожидаемые результаты от свойств средства форматирования (или измените их). Вы также можете получить такие вещи, как символ валюты, из самого объекта языкового стандарта. Так, например, если вы отображали число, отформатированное для Японии в JPY:

NSLocale* japanese_japan = [[[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP"] autorelease];
NSNumberFormatter *fmtr = [[[NSNumberFormatter alloc] init] autorelease];
[fmtr setNumberStyle:NSNumberFormatterCurrencyStyle];
[fmtr setLocale:japanese_japan];

Теперь ваше средство форматирования чисел должно выдавать вам правильные символы для символа валюты и формата в соответствии с правилами в указанной локали.

5
ответ дан 9 December 2019 в 22:31
поделиться