gpt4 book ai didi

ios - 为什么我在不同的应用程序中得到不同的Locale.current?

转载 作者:行者123 更新时间:2023-12-01 22:18:05 24 4
gpt4 key购买 nike

我有两个不同的应用程序,它们是从同一设备上的XCode运行的。

在AppDelegate应用程序didWnishLaunchingWithOptions中,我打印出以下调试消息:

print( Locale.current )

在一个应用程序中,它打印出 sv_SE(正如我所期望的那样),但是在另一个应用程序中,它打印出 en_SE!

结果, dateFormatter.string将产生英语名称,而不是我期望的瑞典语名称。
func dayOfWeek(date:Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEEE"
dateFormatter.locale = Locale.current // locale is en_SE not sv_SE ???
let dayname = dateFormatter.string(from: date).capitalized
return dayname // returns SATURDAY not LÖRDAG
}

问题:当在同一设备上运行时,为什么我在不同的应用程序中获得不同的语言环境?

最佳答案

我在这里找到答案:Locale.current reporting wrong language on device

答案是Locale.current不是设备上设置的语言环境,而是App支持的语言环境之间的“折衷”。我的第一个应用程序确实支持瑞典语,但我的第二个则不支持。要在设备上获取语言环境,应该使用Locale.preferredLanguages.first,就像对Locale.current reporting wrong language on device的回答一样。

关于ios - 为什么我在不同的应用程序中得到不同的Locale.current?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50424487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com