ios - Swift:从货币代码获取货币符号不起作用

标签 ios swift

我想要货币代码中的货币符号。 例如) EUR -> €, USD -> $, SEK -> kr, DKK -> kr

我使用下面的代码来获取货币符号。

func getSymbolForCurrencyCode(code: String) -> String? {
   let locale = NSLocale(localeIdentifier: code)
   return locale.displayName(forKey: NSLocale.Key.currencySymbol, value: code)
}

但是它为 SEK 返回 SEK,为 DKK 返回 DKK,它应该返回 kr。 对于美元、英镑、欧元,它工作正常。

可能是什么问题?

最佳答案

它在不使用 NSLocale 类的情况下工作(Swift 3/4):

func getSymbolForCurrencyCode(code: String) -> String? {
    let result = Locale.availableIdentifiers.map { Locale(identifier: $0) }.first { $0.currencyCode == code }
    return result?.currencySymbol
}
getSymbolForCurrencyCode(code: "GBP")

关于ios - Swift:从货币代码获取货币符号不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46467178/

相关文章:

ios - 在 iTunes Connect 中更改 Bundle-ID

ios - XCODE 控制台消息 括号内的数字与行代码相对应吗?

json - 类型 "Any"在从服务器提取数据数组期间在 Swift 3 中没有下标成员

swift - UICollectionView 项目数据在 Swift 4.2 中滚动后扭曲

ios - Swift Firebase保存/更新具有相同子值的多个父项

ios - 如何在 iOS 上使用 Xamarin 播放音调

ios - 使用 Xcode 和 Cocoapods 加速构建

objective-c - 如何在 Swift 中使用 NSSet<Class>(导出为 Set<NSObject>)?

iphone - UINavigationController - 在所有 View 中保留背景图像

ios - 异步任务不更改外部变量。 swift 3