zav*_*tra 1 objective-c ios swift
有没有办法通过货币代码而不是 iOS 中的语言环境标识符来设置NSLocalefor a NSNumberFormatter?
例如,在语言环境设置的任何一点中使用“USD”而不是“en_US”?
我看到有一个 NSLocaleCurrencyCode 对象,但我不确定我可以使用什么方法来设置NSNumberFormatter's locale.
我目前正在使用 Swift,如果这能让这个过程更容易的话。
编辑:为了进一步解释我在做什么,我有每个国家的货币代码(美元、英镑、日元、人民币等)的列表。用户通过这些代码选择他使用的任何货币,然后我希望 NSNumberFormatter 自动将其语言环境设置为该货币的语言环境以自动对其进行格式化。
您无法根据货币代码确定特定的语言环境。
例如,具有货币代码的语言环境的数量USD是 27,并且NSNumberFormatter它们NSLocale会发出具有 7 个变体的格式化字符串:
"$123,456.78": [en_PR, es_US, en_MH, chr_US, en_AS, en_MP, es_SV, en_VG, en_VI, es_PR, haw_US, en_IO, en_UM, en_US, en_DG, en_GU]
"US$123,456.78": [en_PW, sn_ZW, en_ZW, en_TC, nd_ZW, en_FM]
"$123.456,78": [es_EC]
"123 456,78 US$": [pt_TL]
"$ 123456.78": [en_US_POSIX]
"$ 123.456,78": [nl_BQ]
"$ 123,456.78": [lkt_US]
Run Code Online (Sandbox Code Playgroud)
如果你想做你想做的,你应该自己维护一个查找表。
let currency2locale = [
"USD": NSLocale(localeIdentifier: "en_US"),
"GBP": NSLocale(localeIdentifier: "en_GB"),
"JPY": NSLocale(localeIdentifier: "ja_JP"),
...
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2407 次 |
| 最近记录: |