アプリケーションデリゲートのアプリケーションdidFinishLaunchingメソッドの前に、ビューコントローラーのinitWithCoderメソッドの一部が呼び出される場合があります。(ブレークポイントを設定し、呼び出しのシーケンスを確認することで、これを確認しました)
絵コンテを使っています。UITabBarControllerは、最初のビューコントローラーです。問題の一部は、ストーリーボードが未知の順序でオブジェクトを作成することです。アプリの起動が完了する前に、ViewControllerを作成している可能性があります。
いずれにせよ、問題は私が最初のユーザーデフォルトを登録していることです。これは、プログラムのいずれかの部分がそれらを見る前に発生する必要があります。そこで、登録コードが最初に実行されることが保証される場所を見つけようとしています。
そのような場所はありますか?
注:このスレッドでは少し説明していますが、実際には結論はありません...
ViewDidLoadは、AppDelegatedidFinishLaunchingWithOptionsが実行される前に実行されます。