在我的应用程序中,我想根据用户正在查看的国家/地区显示正确的货币代码:

var isoCountryCode = "GB"
    
let currency = Locale(identifier: isoCountryCode).currency?.identifier ?? "GBP"

因此,我不想硬编码"GB",而是使用一个变量来替换它,该变量使用ISOCountryCode来确定区域设置标识符.即,对于英国,这将是GB作为两个字符的ISO国家/地区代码,结果将是"en_GB".

或者,如果有一种更简单的方法来使用国家代码来确定当地货币,我也会同样高兴.

推荐答案

我在这里找到了答案:

swift get currencycode from country code

代码有点过时,因此更新后的代码为:

let components: [String: String] = [NSLocale.Key.countryCode.rawValue: isoCountryCode]
    
let identifier = NSLocale.localeIdentifier(fromComponents: components)
    
let locale = NSLocale(localeIdentifier: identifier)
    
let currencyCode = locale.object(forKey: NSLocale.Key.currencyCode)

Swift相关问答推荐

如何取消正在视图修改器中运行的任务

SwiftUI—如何识别单词并获取视觉中的位置

如何把多个可观测性变成一个完备性?

将NavigationSplitView更改为NavigationStack

文件命名&NumberForMatter+扩展名&:含义?

如何在SwiftUI中做出适当的曲线?

在一行语句中比较Date.now的相等性是否安全

TimeZone 背后的目的

SwiftUI 中的同一个 ForEach 中是否可以有 2 个数组?

Swift iOS:确定贝塞尔曲线路径是否与 UIView 框架相交?

快速递归:函数与闭包

SwiftUI:异步网络请求后@State 值不更新

使 Swift 并发中的任务串行运行

Alamofire 会自动存储 cookie 吗?

使用自定义相机拍照 iOS 11.0 Swift 4. 更新错误

如何使用 Swift/iOS 为人类书写的笔画制作动画?

为 UIActivityViewController Swift 设置不同的活动项

Swift 中惰性 var 的优势是什么

无法推断泛型参数的参数

swift - 我可以从我的自定义初始化方法中调用 struct 默认成员初始化吗?