英語とデンマーク語の2つの言語にローカライズされたアプリがあります。デバイスを他の言語(フランス語など)に設定すると、アプリがクラッシュします。XIBファイルを実際にロードしていないか、適切に初期化されていない汎用バージョンを取得していないようです。
英語またはデンマーク語以外の言語に設定されている場合、アプリは英語版をロードすると素朴に思っていたと思います。
私は何をしますか?その動作を保証する方法はありますか?
英語とデンマーク語の2つの言語にローカライズされたアプリがあります。デバイスを他の言語(フランス語など)に設定すると、アプリがクラッシュします。XIBファイルを実際にロードしていないか、適切に初期化されていない汎用バージョンを取得していないようです。
英語またはデンマーク語以外の言語に設定されている場合、アプリは英語版をロードすると素朴に思っていたと思います。
私は何をしますか?その動作を保証する方法はありますか?
原因: どういうわけか、XCode が en.lproj および da.lproj ディレクトリの 2 つのセットを作成しました。1 つのセットはプロジェクト ルート (en.lproj はここでは English.lproj と呼ばれていました) にあり、もう 1 つはクラスにありました。「不足している」XIB ファイルは Classes のディレクトリにありました。
解決策: XIB ファイルをルートの適切なフォルダーにコピーします。プロジェクトから元のものを削除します (先に進み、move to thrash と言ってください。コピーしたばかりです...)。プロジェクトの適切な場所にコピーを追加します - すべて 1 回のドラッグ操作で - プロジェクトにコピーしません (既に適切な場所にあります)。
たとえば、デバイスの言語をフランス語に設定すると、アプリは英語版をロードする必要があります。
XIB をどのようにロードしているかについて、詳細を説明する必要があります。特定の実装に関する知識がなければ、この質問に答えることはかなり不可能です。