You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过两位ISO国家代码获取区域标识符或本地货币代码?

解决方案

1. 动态生成对应国家的Locale标识符

iOS 16+ 极简实现

iOS 16及以上版本,Locale支持直接通过区域代码初始化,自动匹配该区域的常用语言(比如GB对应en_GB,CN对应zh_CN),不用手动拼接标识符:

let isoCountryCode = "GB" // 替换为你的动态国家代码变量
if let locale = Locale(regionCode: isoCountryCode) {
    let currencyCode = locale.currency?.identifier ?? "GBP" // 按需调整兜底值
    // 使用currencyCode
}

兼容iOS 16以下版本

如果要支持更低系统版本,可以遍历系统可用Locale,筛选匹配目标国家代码的项:

let isoCountryCode = "GB"
var targetLocale: Locale?

for identifier in Locale.availableIdentifiers {
    let locale = Locale(identifier: identifier)
    if locale.regionCode == isoCountryCode {
        targetLocale = locale
        break // 取第一个匹配项,通常是该区域最常用的Locale
    }
}

let currencyCode = targetLocale?.currency?.identifier ?? "GBP"

2. 更简便的货币代码获取方式

如果你的需求是自动获取用户当前设备所在国家的货币,直接用系统当前Locale即可,无需手动传入国家代码:

let currencyCode = Locale.current.currency?.identifier ?? "USD" // 兜底值按需设置

这是最省心的实现,完全贴合“根据用户所在国家显示货币”的需求。

如果必须基于给定的ISO国家代码获取,那前面通过Locale(regionCode:)(iOS16+)的写法就是最简便的,无需额外拼接标识符。

内容的提问来源于stack exchange,提问作者Daniel C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:55:31