Android根据语言适配货币符,ios – 使用NSLocale根据国家/地区代码或国家/地区名称获取货币符号...

我想使用NSLocale显示基于国家名称或国家/地区代码的货币符号我有所有国家/地区名称列表.假设我选择了USA然后返回$Currency

代码:

NSLocale *locale = [NSLocale currentLocale];

NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];

NSString *country = [locale displayNameForKey: NSLocaleCurrencyCode value: countryCode];

您可以使用以下代码构建自己的国家/地区代码列表和该国家/地区的货币符号:

Objective-C的:

- (void)listCountriesAndCurrencies {

NSArray *localeIds = [NSLocale availableLocaleIdentifiers];

NSMutableDictionary *countryCurrency = [NSMutableDictionary dictionary];

for (NSString *localeId in localeIds) {

NSLocale *locale = [NSLocale localeWithLocaleIdentifier:localeId];

NSString *country = [locale objectForKey: NSLocaleCountryCode];

if (country && country.length == 2) {

NSString *currency = [locale objectForKey: NSLocaleCurrencySymbol];

countryCurrency[country] = currency;

}

}

NSArray *sorted = [countryCurrency.allKeys sortedArrayUsingSelector:@selector(compare:)];

for (NSString *country in sorted) {

NSString *currency = countryCurrency[country];

NSLog(@"country: %@, currency: %@", country, currency);

}

}

此代码以所有区域设置ID的列表开头.从那里创建每个关联的NSLocale.对于每个区域设置,将提取国家/地区代码和货币符号.这些用于构建国家代码和货币符号的字典,然后打印出来.

这是转换为Swift 3的相同代码:

func listCountriesAndCurrencies() {

let localeIds = Locale.availableIdentifiers

var countryCurrency = [String: String]()

for localeId in localeIds {

let locale = Locale(identifier: localeId)

if let country = locale.regionCode, country.characters.count == 2 {

if let currency = locale.currencySymbol {

countryCurrency[country] = currency

}

}

}

let sorted = countryCurrency.keys.sorted()

for country in sorted {

let currency = countryCurr

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值