Rus*_*abh 2 currency objective-c ios nslocale
我想使用NSLocale根据国家名称或国家代码显示货币符号我有所有国家/地区名称列表.假设我选择了美国然后返回$ Currency
代码:
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSString *country = [locale displayNameForKey: NSLocaleCurrencyCode value: countryCode];
Run Code Online (Sandbox Code Playgroud)
Leo*_*bus 12
Xcode 10•Swift 4.2或更高版本
extension Locale {
static let currency: [String: (code: String?, symbol: String?)] = Locale.isoRegionCodes.reduce(into: [:]) {
let locale = Locale(identifier: Locale.identifier(fromComponents: [NSLocale.Key.countryCode.rawValue: $1]))
$0[$1] = (locale.currencyCode, locale.currencySymbol)
}
}
Run Code Online (Sandbox Code Playgroud)
Locale.currency["US"] // (code "USD", symbol "US$")
Locale.currency["BR"] // (code "BRL", symbol "R$")
Locale.currency["GB"] // (code "GBP", symbol "£")
Locale.currency["PT"] // (code "EUR", symbol "€")
Run Code Online (Sandbox Code Playgroud)
对于较旧的Swift语法,请查看帖子编辑历史记录
您可以使用以下代码构建自己的国家/地区代码列表和该国家/地区的货币符号:
目标-C:
- (void)listCountriesAndCurrencies {
NSArray<NSString *> *localeIds = [NSLocale availableLocaleIdentifiers];
NSMutableDictionary<NSString *, NSString *> *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<NSString *> *sorted = [countryCurrency.allKeys sortedArrayUsingSelector:@selector(compare:)];
for (NSString *country in sorted) {
NSString *currency = countryCurrency[country];
NSLog(@"country: %@, currency: %@", country, currency);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码以所有语言环境 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 = countryCurrency[country]!
print("country: \(country), currency: \(currency)")
}
}
Run Code Online (Sandbox Code Playgroud)
在模拟的 iOS 10 设备上运行时,会产生以下列表:
国家:AD,货币:€ 国家:AE,货币:?.?.? 国家:AF,货币:? 国家:AG,货币:$ 国家:AI,货币:$ 国家:AL,货币:Lekë 国家:AM,货币:? 国家:AO,货币:Kz 国家:AR,货币:$ 国家:AS,货币:$ 国家:AT,货币:€ 国家:AU,货币:$ 国家:AW,货币:Afl。 国家:AX,货币:€ 国家:AZ,货币:? 国家:BA,货币:KM 国家:BB,货币:$ 国家:BD,货币:? 国家:比利时,货币:€ 国家:BF,货币:CFA 国家:BG,货币:??。 国家:BH,货币:?.?.? 国家:BI,货币:FBu 国家:BJ,货币:CFA 国家:BL,货币:€ 国家:BM,货币:$ 国家:BN,货币:$ 国家:BO,货币:Bs 国家:BQ,货币:$ 国家:巴西雷亚尔,货币:雷亚尔 国家:BS,货币:$ 国家:BT,货币:Nu。 国家:BW,货币:P 国家:BY,货币:?。 国家:BZ,货币:$ 国家:CA,货币:$ 国家:CC,货币:$ 国家:CD,货币:FC 国家:CF,货币:FCFA 国家:CG,货币:FCFA 国家:CH,货币:CHF 国家:CI,货币:CFA 国家:CK,货币:$ 国家:CL,货币:$ 国家:CM,货币:FCFA 国家:CN,货币:¥ 国家:CO,货币:$ 国家:CR,货币:? 国家:CU,货币:$ 国家:简历,货币:? 国家:CW,货币:NAf。 国家:CX,货币:$ 国家:CY,货币:€ 国家:CZ,货币:K? 国家:DE,货币:€ 国家:DG,货币:美元 国家:DJ,货币:Fdj 国家:DK,货币:kr。 国家:DM,货币:$ 国家:DO,货币:RD$ 国家:DZ,货币:?.?.? 国家:EA,货币:€ 国家:EC,货币:$ 国家:EE,货币:€ 国家:EG,货币:?.?.? 国家:EH,货币:?.?.? 国家:ER,货币:Nfk 国家:ES,货币:€ 国家:ET,货币:Br 国家:FI,货币:€ 国家:FJ,货币:$ 国家:FK,货币:£ 国家:FM,货币:美元 国家:FO,货币:kr 国家:FR,货币:€ 国家:GA,货币:FCFA 国家:GB,货币:£ 国家:GD,货币:$ 国家:GE,货币:? 国家:GF,货币:€ 国家:GG,货币:£ 国家:GH,货币:GH? 国家:GI,货币:£ 国家:GL,货币:kr。 国家:GM,货币:D 国家:GN,货币:FG 国家:GP,货币:€ 国家:GQ,货币:FCFA 国家:GR,货币:€ 国家:GT,货币:Q 国家:GU,货币:$ 国家:GW,货币:CFA 国家:GY,货币:$ 国家:港币,货币:港币 国家:HN,货币:L 国家:HR,货币:HRK 国家:HT,货币:G 国家:HU,货币:HUF 国家:IC,货币:€ 国家:身份证,货币:印尼盾 国家:IE,货币:€ 国家:伊利诺伊州,货币:? 国家:IM,货币:£ 国家:IN,货币:? 国家:IO,货币:美元 国家:IQ,货币:IQD 国家:IR,货币:IRR 国家:IS,货币:ISK 国家:IT,货币:€ 国家:JE,货币:£ 国家:JM,货币:$ 国家:JO,货币:?.?.? 国家:JP,货币:¥ 国家:KE,货币:Ksh 国家:公斤,货币:??? 国家:KH,货币:? 国家:KI,货币:$ 国家:KM,货币:CF 国家:KN,货币:$ 国家:KP,货币:KPW 国家:韩元,货币:? 国家:KW,货币:?.?.? 国家:KY,货币:$ 国家:KZ,货币:? 国家:洛杉矶,货币:? 国家:LB,货币:?.?.? 国家:LC,货币:$ 国家:LI,货币:瑞士法郎 国家:LK,货币:卢比。 国家:LR,货币:$ 国家:LS,货币:R 国家:LT,货币:€ 国家:LU,货币:€ 国家:LV,货币:€ 国家:LY,货币:?.?.? 国家:MA,货币:MAD 国家:MC,货币:€ 国家:MD,货币:L 国家:ME,货币:€ 国家:MF,货币:€ 国家:MG,货币:Ar 国家:MH,货币:$ 国家:MK,货币:den 国家:ML,货币:CFA 国家:MM,货币:K 国家:MN,货币:? 国家:MO,货币:MOP$ 国家:MP,货币:$ 国家:MQ,货币:€ 国家:MR,货币:UM 国家:MS,货币:$ 国家:MT,货币:€ 国家:MU,货币:卢比 国家:MV,货币:MVR 国家:MW,货币:MK 国家/地区:MX,货币:$ 国家:MY,货币:RM 国家:MZ,货币:MTn 国家/地区:NA,货币:$ 国家:NC,货币:FCFP 国家:NE,货币:CFA 国家:NF,货币:$ 国家:NG,货币:? 国家:NI,货币:加元 国家:荷兰,货币:€ 国家:NO,货币:kr 国家:NP,货币:???? 国家/地区:NR,货币:$ 国家:NU,货币:$ 国家:新西兰,货币:$ 国家:OM,货币:?.?.? 国家:PA,货币:B/。 国家:PE,货币:S/。 国家:PF,货币:FCFP 国家:PG,货币:K 国家:PH,货币:? 国家:PK,货币:卢比 国家:PL,货币:PLN 国家:下午,货币:€ 国家:PN,货币:$ 国家:PR,货币:$ 国家:PS,货币:? 国家:PT,货币:€ 国家:PW,货币:美元 国家:PY,货币:Gs。 国家:QA,货币:?.?.? 国家:RE,货币:€ 国家:RO,货币:RON 国家:RS,货币:RSD 国家:RU,货币:RUB 国家:RW,货币:RF 国家:SA,货币:?.?.? 国家:SB,货币:$ 国家:SC,货币:SR 国家:SD,货币:SDG 国家:SE,货币:kr 国家:SG,货币:$ 国家:SH,货币:£ 国家:SI,货币:€ 国家:SJ,货币:kr 国家:SK,货币:€ 国家:SL,货币:Le 国家:SM,货币:€ 国家:SN,货币:CFA 国家:SO,货币:S 国家:SR,货币:$ 国家:SS,货币:£ 国家:ST,货币:Db 国家:SV,货币:$ 国家:SX,货币:NAf。 国家:SY,货币:?.?.? 国家:SZ,货币:E 国家:TC,货币:美元 国家:TD,货币:FCFA 国家:TG,货币:CFA 国家:泰铢,货币:泰铢 国家:TJ,货币:??? 国家:TK,货币:$ 国家/地区:TL,货币:美元 国家:TM,货币:TMT 国家:TN,货币:?.?.? 国家:TO,货币:T$ 国家:TR,货币:TRY 国家:TT,货币:$ 国家:电视,货币:$ 国家:TW,货币:NT$ 国家:TZ,货币:TSh 国家:UA,货币:? 国家:UG,货币:USh 国家:UM,货币:$ 国家:美国,货币:$ 国家:UY,货币:$ 国家:UZ,货币:so?m 国家:VC,货币:$ 国家:VE,货币:Bs。 国家:VG,货币:美元 国家:VI,货币:$ 国家:越南,货币:? 国家:VU,货币:VT 国家:WF,货币:FCFP 国家:WS,货币:WS$ 国家:XK,货币:€ 国家:YE,货币:?.?.? 国家:YT,货币:€ 国家:ZA,货币:R 国家:ZM,货币:K 国家:ZW,货币:美元
| 归档时间: |
|
| 查看次数: |
4638 次 |
| 最近记录: |