我正在尝试为我编写的一段代码编写测试,该代码使用NSDateFormatter将日期转换为en_US_POSIX。测试似乎在运行时启动iOS模拟器,并且在此处更改语言似乎也会更改运行测试时使用的语言。
有没有办法可以通过编程方式设置模拟器的语言,以便特定的测试(或测试套件)使用我想要测试的正确语言?
[更新]我尝试在我的方案中使用“-AppleLanguages”和“-AppleLocales”参数,但在测试运行期间似乎都没有影响语言 - [[NSLocale currentLocale] localeIdentifier]
仍然返回en_US
,并且[NSDate date]
仍然以正常yyyy-MM-dd HH:mm:ss ZZZ
格式输出。
[更新]我不相信这是重复的。文章引用改变设置中的语言没有任何效果,但我可以在我的模拟器中执行此操作,并在我的应用程序中查看键盘语言更改。问题围绕着对[NSDate date]的简单调用,总是以en_UTC样式格式返回日期,而不管使用非罗马字符集的语言,如阿拉伯语。
[解决]我找到了解决方案。显然,[NSDate date]
等函数的输出由系统LOCALE决定,而不是语言。删除-AppleLanguages参数并将其替换为-AppleLocale ar_AE
会导致[NSDate date]
的输出显示在阿拉伯语中,这正是我正在寻找的。 p>
答案 0 :(得分:1)
您使用哪种Xcode版本?如果您使用的是Xcode6.1(或6.1.1),则模拟器存在错误。请参阅iOS8.1 Simulator always uses US keyboard layout despite german hardware keyboard