NSLocale preferredRanguages总是检索' en'语言

时间:2016-05-24 14:31:33

标签: ios

我试图通过以下代码在我的设备中获取正确的语言(不在SIMULATOR中):

 NSString * languageLocale = [[NSLocale preferredLanguages] objectAtIndex:0];

它始终是' 但我当前的语言设置为西班牙语

任何想法为什么总是检索' en'而不是当前的设备语言?

2 个答案:

答案 0 :(得分:3)

我要面对同样的问题。就我而言,它是通过在编辑方案中将应用程序语言设置为系统语言来解决的。

这是方法:

编辑方案 - >选项 - >应用程序语言 - >系统语言。

答案 1 :(得分:1)

经过一些研究,我发现关键的AppleLanguages被覆盖了。 那么,

NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults objectForKey:@"AppleLanguages"];

它正在返回带有覆盖数据的字典列表。 我刚刚这样做了:

NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [defaults dictionaryRepresentation];
for (id key in dict) {
    if([key isEqualToString:@"AppleLanguages"]){
        [defaults removeObjectForKey:key];
    }
}
[defaults synchronize];

为了删除整个密钥,系统将其重置并返回正确的列表。