言語に応じて表示するさまざまな画像を含む IOS プロジェクトがあり、実行時に正しい画像を強制的に読み込む方法が見つかりません (言語を別の言語に切り替えるのではありません)。実際には、AppDelegate が干渉する前にファイルがロードされているようです。
appDelegate で行う場合 (didFinishLaunchingWithOptions:):
[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects: @"es", @"en", nil] forKey:@"AppleLanguages"];
もう手遅れです。画像は既に間違った言語で読み込まれています。したがって、これを達成するために、NSUserDefaults を main() 呼び出しに移動しました。このトリックは機能します。しかし、私の質問は次のとおりです。Apple は私のアプリを拒否しますか? また、コンパイル時に (または plist などと) 言語を同期するための、より適切でクリーンなアプローチはありますか?
アップデート
[[NSUserDefaults standardUserDefaults] setObject: forKey:] を置き換えるだけで、nib ファイルを呼び出す前のさらなるステップでうまくいったようです。[NSUserDefaults standardUserDefaults] が非同期で呼び出されるようなものです。したがって、nib ファイルがロードされた後、setter メソッドが実際に評価された可能性があります。しかし、 info.plist を介してローカライズ可能な設定を変更できますか?