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];

非常感谢

4

1 回答 1

0

每次您的应用启动时,系统都会覆盖 AppleLanguages 的值。

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

希望这可以帮助

于 2012-10-06T17:07:22.837 回答