Xcode 10 ? Swift 4.2 or later
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")
For older Swift syntax please check the post edit history
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…