我正在做一个让用户选择语言并在运行时更改它的应用程序。我试图存储所需语言时遇到问题。它在用户更改语言的同一执行期间正确运行,但在下一次执行时,它总是获得西班牙语(系统语言)。这是我用来存储语言的代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (sender.tag==1){
[defaults setObject:[NSArray arrayWithObjects:@"ca",@"es", nil] forKey:@"AppleLanguages"];
}else{
[defaults setObject:[NSArray arrayWithObjects:@"es",@"ca", nil] forKey:@"AppleLanguages"];
}
[defaults synchronize];
非常感谢
答案 0 :(得分:0)
每次启动应用时,系统都会覆盖AppleLanguages的值。
解决方案是将您想要的语言存储在单独的NSUserDefaults条目中,并在每次应用启动时加载它们(将它们写入AppleLanguages)。
希望这有帮助