我试图通过以下代码在我的设备中获取正确的语言(不在SIMULATOR中):
NSString * languageLocale = [[NSLocale preferredLanguages] objectAtIndex:0];
它始终是' 但我当前的语言设置为西班牙语
任何想法为什么总是检索' en'而不是当前的设备语言?
答案 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];
为了删除整个密钥,系统将其重置并返回正确的列表。