OK、私は正式に怒っています。私は以前はIOSプロジェクトを開始していましたが、ちょっとした混乱になってしまいました。NSLocalizedStringは、どこにも定義されていないテキストを返します。
ローカライゼーションを一から行うことにしたので、.stringsファイルをすべて破棄し、適切なマルチ言語構造を作成しました。私は空のLocalizable.stringsファイルを使い始め、アプリケーションを実行してすべてを適切にクリーンアップしたかどうかを確認します。空のLocalizable.stringファイルでは、私は "NSLocalizedString"呼び出しがキーを単にテキストとして返すと仮定しました。彼らはしません。彼らはまだ古い.stringsファイルにあった古いテキストを返します。
念のために、私はNSLocalizedStringの一つ下のNSLog文を置くのような呼び出し:
NSString *text = NSLocalizedString(key, nil);
NSLog(@"key=%@ text=%@", key, text);
それから私が返されたテキストのために私の全体のハードディスクを検索します。私のハードディスク上にNSLocalizedStringが返す文字列はファイルには含まれていません。そしてそれはキーとはまったく異なる文字列なので、NSLocalizedStringで構築することはできません。
これがどのように起こる可能性がありますか?古い情報はXcodeによってどこかにキャッシュされていますか?新しいLocalizable.stringsファイルを使用するようにツールを説得するにはどうすればよいですか?明らかに、私はすでにプロジェクト全体をクリーンアップして再構築しています。
デバイスからアプリを削除してもう一度実行してみてください。過去に削除されたリソースは開発中にデバイス上で削除されないことに気付きました。 –