我正在尝试使用以下代码在我的设备中获取正确的语言(不在模拟器中):
NSString * languageLocale = [[NSLocale preferredLanguages] objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
它总是“en”, 但我当前的语言设置为西班牙语
有什么想法为什么检索总是“en”而不是当前的设备语言?
经过一些研究,我发现关键的 AppleLanguages 被覆盖了。所以
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults objectForKey:@"AppleLanguages"];
Run Code Online (Sandbox Code Playgroud)
它返回一个包含被覆盖数据的字典列表。我刚刚这样做了:
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [defaults dictionaryRepresentation];
for (id key in dict) {
if([key isEqualToString:@"AppleLanguages"]){
[defaults removeObjectForKey:key];
}
}
[defaults synchronize];
Run Code Online (Sandbox Code Playgroud)
为了删除整个密钥并且系统重置它并返回正确的列表。
| 归档时间: |
|
| 查看次数: |
946 次 |
| 最近记录: |