以前に同じ警告が表示されたので、次のようにして修正しました。
ストーリーボードを使用していました。私のストーリーボードには、ナビゲーション ビュー コントローラーとビュー コントローラー (そのナビゲーション ビュー コントローラーのルート ビュー コントローラー) のみが含まれていました。私の場合、次の 2 つの理由のいずれかが原因でした。
状態保持のためにアプリケーションが正しくセットアップされていませんでした。以下を設定する必要があります。
アプリ デリゲートで、application:willFinishLaunching をオーバーライドします。そのメソッドで単純に YES を返すことができます。
すべてのビュー コントローラーとビュー (ナビゲーション ビュー コントローラーとタブ ビュー コントローラーを含む) に対して、復元 ID を設定します。
アプリ デリゲートで、オーバーライドしてオプトインしshouldSaveApplicationState
、shouldRestoreApplicationState
この警告が引き続き発生する場合は、Xcode でアプリを実行する方法を確認できます。Xcode シミュレーターでアプリを実行しましたが、特定のシーケンスに従って状態保存をトリガーする必要がありました。
- Xcode シミュレーターでアプリを起動する
- Xcode シミュレーターで、[ホーム] ボタンをクリックしてアプリをバックグラウンドにします。ビューコントローラーの
encodeRestorableStateWithCoder
メソッドを呼び出す必要があります
- Xcode に戻り、「停止」ボタンをクリックしてシミュレーションを終了します。
- Xcode シミュレーターで、[ホーム] ボタンをダブルクリックし、アプリ スイッチャーからアプリを削除して、
- Xcode に戻り、アプリを再度実行します。
その警告は表示されません。他のシーケンスを使用すると、その警告が表示されるのを見ました。Xcode を使用して自分のデバイスで自分のアプリをデバッグしたとき、同じ手順を実行しましたが、警告は表示されませんでした。
警告は、Xcode がアプリを正しく終了できなかったため、状態復元ファイルが正しくディスクに保存されなかったことを示していると思います。