Как я могу получить символ валюты по коду валюты, когда устройство в любой локали?iOS Как получить символ валюты по коду валюты?
Я пытаюсь использовать что-то вроде этого:
- (NSLocale *)priv_findLocaleByCurrencyCode:(NSString *)currencyCode
{
NSArray *locales = [NSLocale availableLocaleIdentifiers];
NSLocale *locale = nil;
for (NSString *localeId in locales) {
locale = [[NSLocale alloc] initWithLocaleIdentifier:localeId];
NSString *code = [locale objectForKey:NSLocaleCurrencyCode];
if ([code isEqualToString:currencyCode])
break;
else
locale = nil;
}
return locale;
}
- (NSString *)findCurrencySymbolByCode:(NSString *)currencyCode
{
NSNumberFormatter *fmtr = [[NSNumberFormatter alloc] init];
NSLocale *locale = [self priv_findLocaleByCurrencyCode:currencyCode];
NSString *currencySymbol;
if (locale)
[fmtr setLocale:locale];
[fmtr setNumberStyle:NSNumberFormatterCurrencyStyle];
currencySymbol = [fmtr currencySymbol];
return currencySymbol;
}
Пример:
[self findCurrencySymbolByCode:@"PLN"];
Но если я в русской локали, и попытаться найти символ для кода валюты PLN я получить - PLN, вместо Символ «zl». Поскольку NSLocale имеет два локали для PL - en_PL и pl_PL, и я не знал, как проверить не так.
Может быть, это еще один путь, чтобы сделать это?
Мой код - PLN, это правильно – Nubaslon
@Nubaslon - тогда ваша валюта Злотый –
Да, но символ curency это - «PLN» вместо «ZL», мне нужно «ZL» – Nubaslon