gpt4 book ai didi

ios - iOS如何通过货币代码获取货币符号?

转载 作者:行者123 更新时间:2023-12-01 16:28:27 26 4
gpt4 key购买 nike

在任何区域设置中使用设备时,如何通过货币代码获取货币符号?

我尝试使用这样的东西:

- (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,而且我不知道如何检查没有错。

可能是实现这一目标的另一种途径?

最佳答案

我认为您的货币代码或符号与您认为的有所不同。请参阅此link

替换以下行

locale = [[NSLocale alloc] initWithLocaleIdentifier:localeId];


locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_PL"];

检查上面的代码。

关于ios - iOS如何通过货币代码获取货币符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33756566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com