ios - 使用 NSLocale 根据国家/地区代码或国家/地区名称获取货币符号

标签 ios objective-c swift currency nslocale

我想使用 NSLocale 根据国家/地区名称或国家/地区代码显示货币符号我有所有国家/地区名称列表。假设我选择了美国,那么它返回$货币

代码:

 NSLocale *locale = [NSLocale currentLocale];
 NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
 NSString *country = [locale displayNameForKey: NSLocaleCurrencyCode value: countryCode];

最佳答案

Xcode 10 • Swift 4.2 或更高版本

extension Locale {
    static let currency: [String: (code: String?, symbol: String?, name: String?)] = isoRegionCodes.reduce(into: [:]) {
        let locale = Locale(identifier: identifier(fromComponents: [NSLocale.Key.countryCode.rawValue: $1]))
        $0[$1] = (locale.currencyCode, locale.currencySymbol, locale.localizedString(forCurrencyCode: locale.currencyCode ?? ""))
    }
}
<小时/>
Locale.currency["US"]   // (code "USD", symbol "$", name "US Dollar")
Locale.currency["BR"]   // (code "BRL", symbol "R$", name "Brazilian Real")
Locale.currency["GB"]   // (code "GBP", symbol "£", name "British Pound")
Locale.currency["PT"]   // (code "EUR", symbol "€", name "Euro")
<小时/>

对于较旧的 Swift 语法,请检查帖子编辑历史记录

关于ios - 使用 NSLocale 根据国家/地区代码或国家/地区名称获取货币符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40270754/

相关文章:

objective-c - NSFetchedResultsController 保留对 Storyboard中已释放委托(delegate) Controller 的引用,导致崩溃

swift - 使用平移手势缩放 UITextView

Swift 4 字符串索引在处理大字符串时偏移太慢

ios - Firebird 和 Swift 兼容性?

ios - 是否有可能在 iOS 罗盘航向中获得低于度数的精度?

objective-c - 启动应用后模态视图不出现

iOS - Swift - 返回异步检索值的函数

ios - 如何在 Objective-C 中创建带有图像的自定义键盘扩展?

ios - 在 iphone 5 和 iphone 6 中动态设置字体大小

objective-c - 全局热键碳事件的 cocoa 替代品