Я искал этот ответ здесь, а также в официальной документации, но я не могу найти ответ на этот вопрос.У меня есть коды валют (например, "EUR").Мне нужно получить код страны (например, «ЕС»).Итак, я видел, что могу делать это наоборот (получение кода валюты с использованием кода страны), но я пытался изменить это решение для своих нужд, и в результате я получил ноль.Также я знаю, что могу использовать простое решение - удалить последнюю букву из кода валюты, чтобы получить код страны (это работает в большинстве случаев из моих данных API, но не везде), - но я чувствую, что этот подход небезопасен.Поэтому мой вопрос похож на заголовок: Могу ли я определить страну по коду валюты, используя Locale?
Вот мой подход:
с NSLocale
extension NSLocale {
static func currencySymbolFromCode(code: String) -> String? {
let localeIdentifier = NSLocale.localeIdentifier(fromComponents: [NSLocale.Key.currencyCode.rawValue : code])
let locale = NSLocale(localeIdentifier: localeIdentifier)
return locale.object(forKey: NSLocale.Key.countryCode) as? String
}
}
с Locale
extension Locale {
static let countryCode: [String: String] = Locale.isoCurrencyCodes.reduce(into: [:]) {
let locale = Locale(identifier: Locale.identifier(fromComponents: [NSLocale.Key.currencyCode.rawValue: $1]))
$0[$1] = (locale.regionCode)
}
}