我正在使用Xcode开发iOS应用,最近我在调试控制台中发现了这种情况:
(lldb) p Locale.preferredLanguages[0]
(String) $R6 = "en"
(lldb)
(lldb) p UserDefaults.standard.stringArray(forKey: "AppleLanguages")
([String]?) $R20 = 1 value {
[0] = "en"
}
(lldb)
如上所示,列表中仅显示“ en”(英语)。
对此可能没有什么奇怪的,但是奇怪的是,当我的手机设置为其他语言(法语)时,我可以看到此信息,而我也尝试了在日语相同的情况下使用手机的情况。
事实是,我不知道发生了什么,如果有人可以澄清这一点,我将很高兴。我希望看到列表中的几个项目,但更重要的是,我希望看到设备当前设置的语言。换句话说:
"fr",+ possibly some other items
(while being in French)
"ja",+ possibly some other items
(while being in Japanese)
在我得到的另一个应用程序中运行相同的调试器命令:
(lldb) p UserDefaults.standard.stringArray(forKey: "AppleLanguages")
([String]?) $R6 = 14 values {
[0] = "ja-JP"
[1] = "fr-JP"
[2] = "en-JP"
[3] = "zh-Hant-JP"
[4] = "zh-Hans-JP"
[5] = "es-JP"
[6] = "th-JP"
[7] = "zh-HK"
[8] = "ru-RU"
[9] = "ko-KR"
[10] = "fi-FI"
[11] = "de-DE"
[12] = "bo-JP"
[13] = "hi-JP"
}
(lldb)
最后的结果是我希望看到的更多(因为我的手机当前设置为日语)。但是,第一个应用程序中的设置可以导致我得到的结果。这就是问题所在。
有关信息,我使用的是Xcode版本11.2和iOS版本12.4.2。