2012-10-06 53 views
0

我正在做一个应用程序,让用户选择语言并在运行时更改它。我有一个问题试图存储所需的语言。它在用户更改语言的相同执行过程中正确运行,但在下一次执行时,它总是获得西班牙语(系统语言)。下面是我用来存储语言代码:语言存储不正确

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

看起来它应该正确地存储选择。我们可以在启动时看到您打算加载语言选择的代码吗? – geraldWilliam

回答

0

该系统将覆盖每一个你的应用程序被启动时AppleLanguages的价值。

解决方案是将所需语言存储在单独的NSUserDefaults条目中,并在每次应用启动时加载它们(将它们写入AppleLanguages)。

希望这可以帮助