如何将币种代码重命名为币种全称? Swift
How to rename the currency code to the full name of the currency? Swift
我创建了这个方法。我有一组货币代码。但是当我插入一个代码时,例如:“USD”,方法returns me 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
您的主要问题是您试图从货币代码创建区域设置,然后您尝试使用该无效区域设置将货币代码转换为名称。只需使用用户当前的语言环境来转换货币代码。
您还应该使用 Locale
而不是 NSLocale
。
func getCurrencyFullName(code: String) -> String? {
return Locale.current.localizedString(forCurrencyCode: code)
}
在英语语言环境中,这会为 UAH 提供 "Ukrainian Hryvnia"。在乌克兰语言环境中,这会给出“українська гривня”。
使用 Locale 而不是 NSLocale
func getCurrencyFullName(code: String) -> String? {
let locale1 = Locale(identifier: code)
return locale1.localizedString(forCurrencyCode: code)
}
对你有帮助
我创建了这个方法。我有一组货币代码。但是当我插入一个代码时,例如:“USD”,方法returns me 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
您的主要问题是您试图从货币代码创建区域设置,然后您尝试使用该无效区域设置将货币代码转换为名称。只需使用用户当前的语言环境来转换货币代码。
您还应该使用 Locale
而不是 NSLocale
。
func getCurrencyFullName(code: String) -> String? {
return Locale.current.localizedString(forCurrencyCode: code)
}
在英语语言环境中,这会为 UAH 提供 "Ukrainian Hryvnia"。在乌克兰语言环境中,这会给出“українська гривня”。
使用 Locale 而不是 NSLocale
func getCurrencyFullName(code: String) -> String? {
let locale1 = Locale(identifier: code)
return locale1.localizedString(forCurrencyCode: code)
}
对你有帮助