我创建了此方法。我有一组货币代码。但是,当我插入代码(例如:“ USD”)时,该方法返回给我Optional(“ US Dollar”)。每当我尝试提取一个选项时,我都会得到零。我做错了什么?
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
答案 0 :(得分:1)
您的主要问题是,您试图通过货币代码创建语言环境,然后尝试使用该无效语言环境将货币代码转换为名称。只需使用用户的当前语言环境来转换货币代码即可。
您还应该使用<div class="w-text-h"><a class="w-text-value" href="http://localhost/Developer/"><span class="first-letter">D</span>eveloper</a></div>
而不是Locale
。
NSLocale
在英语语言环境中,这表示UAH为“乌克兰格里夫纳汇率”。在乌克兰语言环境中,这表示“українськагривня”。
答案 1 :(得分:1)
使用语言环境而不是NSLocale
func getCurrencyFullName(code: String) -> String? {
let locale1 = Locale(identifier: code)
return locale1.localizedString(forCurrencyCode: code)
}
这对您有帮助。