使用Fixer.io API获取货币符号对应描述与图标方法咨询
针对Fixer.io API + iOS应用的货币描述与图标解决方案
嘿,这个需求我刚好有实操经验,结合你提到的NSLocale和Fixer.io的场景,给你梳理两个核心功能的可行方案:
获取货币描述(比如EUR → Euro)
你考虑用iOS原生NSLocale的思路完全没问题,这是最省心且本地化友好的方案,不用额外依赖API返回的字段:
- 原生
NSLocale的displayName(forKey:value:)方法可以直接根据货币代码返回对应名称,还会自动适配用户的系统语言。举个Swift代码示例:
func getCurrencyDisplayName(from code: String) -> String? { return NSLocale.current.displayName(forKey: .currencyCode, value: code) } // 调用示例:getCurrencyDisplayName(from: "EUR") 会返回 "Euro"(中文系统下是"欧元")
- 额外提一句:如果Fixer.io的API响应本身包含货币名称字段,你也可以直接用这个字段,好处是和API数据保持统一,但原生方案胜在本地化适配更灵活。
获取货币图标/符号
这里得分两种情况来看:
1. 获取货币符号(比如EUR → €)
同样可以用NSLocale实现,代码示例:
func getCurrencySymbol(from code: String) -> String? { let locale = NSLocale(localeIdentifier: code) return locale.object(forKey: .currencySymbol) as? String } // 调用示例:getCurrencySymbol(from: "EUR") 返回 "€"
2. 获取货币专属图标/国旗图标
Fixer.io本身没有提供这类资源,给你几个可行方向:
- 用系统内置符号:iOS 16+的
SF Symbols里包含部分货币相关符号,搜索"currency"就能找到,不过覆盖的货币种类有限。 - 第三方图标库:比如Font Awesome这类图标字体,有专门的货币图标分类,集成后可以直接通过货币代码匹配对应图标。
- 自定义映射表:把常用货币的图标(国旗或专属图标)放进项目资源里,维护一个
[货币代码: 图标名称]的字典,根据代码直接取对应图标,适合需要精准控制图标样式的场景。
内容的提问来源于stack exchange,提问作者mm24
相关产品推荐
相关产品推荐

