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 に答える