如何将货币代码重命名为货币的全名?迅速



我创建了这个方法。我有一系列货币代码。但是当我插入代码时,例如:"USD",该方法会返回 Optional ("美元"(。每当我尝试提取一个选项时,我都会得到一个零。我做错了什么?

func getCurrencyFullName(code: String) -> String? {
    let locale = NSLocale(localeIdentifier: code)
print(locale.displayName(forKey: NSLocale.Key.countryCode, value: code) // Optional "US dollar"
    return locale.displayName(forKey: NSLocale.Key.countryCode, value: code)
}
let dollar = getCurrencyFullName(code: UAH) 
print(dollar) // nil

您的主要问题是您尝试从货币代码创建区域设置,然后尝试使用该无效的区域设置将货币代码转换为名称。只需使用用户的当前区域设置即可转换货币代码。

您还应该使用 Locale 而不是 NSLocale

func getCurrencyFullName(code: String) -> String? {
    return Locale.current.localizedString(forCurrencyCode: code)
}

在英语区域设置中,这为 UAH 提供了"乌克兰格里夫纳"。在乌克兰地区,这给出了"українська гривня"。

使用 Locale 而不是 NSLocale

  func getCurrencyFullName(code: String) -> String? {
        let locale1 = Locale(identifier: code)
        return locale1.localizedString(forCurrencyCode: code)
    }

它是帮助你。

最新更新