我目前正在为iOS开发一个应用程序,最近我更新到了iOS 17 beta
和Xcode 15.0 beta
.我正在try 使用NumberFormatter
将Double
格式化为货币字符串(在我的例子中,是美元$).以下是我的代码片段:
let formatter = NumberFormatter()
formatter.currencySymbol = Locale.current.currencySymbol
print(Locale.current.currency)
print(Locale.current.currencySymbol)
print(Locale.current.currency?.identifier)
print(Locale.current)
formatter.numberStyle = .currency
在iOS 16上运行此命令时,我得到以下输出:
Optional(Foundation.Locale.Currency(_identifier: "USD", _normalizedIdentifier: "usd"))
Optional("$")
Optional("USD")
en_US (current)
然而,当在iOS 17 beta上运行相同的代码时,输出是不同的:
nil
Optional("¤")
nil
en_001 (fixed)
语言环境的货币和标识符属性似乎返回了nil,并且语言环境本身的标识也有所不同.
还有谁在iOS17测试版和Xcode15.0测试版中遇到过这个问题?这是测试版中的一个错误,还是应该使用区域设置进行货币格式设置的方式发生了变化?