【发布时间】:2020-05-28 18:24:17
【问题描述】:
如何设置 NumberFormatter 以返回货币符号而不是 iso 符号,而是在 iOS 区域设置窗格中可见的本地货币符号。就像波兰货币一样,我需要有“zł”符号而不是“PLN”。
我找不到任何从系统中获取它的方法,因为它不能被硬编码。 IAP 本地化价格也使用“zł”而不是“PLN”
我试过这样:
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.currencySymbol = Locale.current.currencySymbol
formatter.maximumFractionDigits = 2
let price = formatter.string(from: (offeringPrice / 12) as NSNumber) ?? ""
但无论我尝试使用什么作为货币符号,我总是得到“PLN”的回报
【问题讨论】:
-
Locale可以有 2 个组件,语言和区域。currencySymbol可能因地区和语言而异。如果我不设置区域,而只设置语言:Locale(identifier: "pl").currencySymbol它返回"¤",但如果我同时设置区域和语言:Locale(identifier: "pl-PL").currencySymbol它返回"zł"。我想知道您是否因为测试设备上未正确设置区域而得到意外结果。 -
我在设备中设置了语言环境波兰和波兰地区,本地化 IAP 价格返回“zł”所以这有点奇怪
-
我的应用语言目前只有英文。也许这是原因?和语言环境 en_PL 无论出于何种原因;/
标签: ios swift nsnumberformatter numberformatter