16

アプリケーション画面を保存しているので、アプリケーションを開くと、保存された画面が表示されます。アプリケーションはナビゲーションベースです。

メイン ストーリー ボードの 2 つのビュー コントローラーに復元 ID を割り当てました。最初のコントローラーは、ナビゲーション コントローラーのルート ビュー コントローラーです。また、ナビゲーション コントローラーに復元 ID を割り当てました。問題は、アプリケーションを実行すると、次の警告が表示されることです。

修復中のマーカー ファイルを作成できません。

他に何をする必要があるのか​​ わかりません。

4

3 に答える 3

10

以前に同じ警告が表示されたので、次のようにして修正しました。

ストーリーボードを使用していました。私のストーリーボードには、ナビゲーション ビュー コントローラーとビュー コントローラー (そのナビゲーション ビュー コントローラーのルート ビュー コントローラー) のみが含まれていました。私の場合、次の 2 つの理由のいずれかが原因でした。

状態保持のためにアプリケーションが正しくセットアップされていませんでした。以下を設定する必要があります。

  1. アプリ デリゲートで、application:willFinishLaunching をオーバーライドします。そのメソッドで単純に YES を返すことができます。

  2. すべてのビュー コントローラーとビュー (ナビゲーション ビュー コントローラーとタブ ビュー コントローラーを含む) に対して、復元 ID を設定します。

  3. アプリ デリゲートで、オーバーライドしてオプトインしshouldSaveApplicationStateshouldRestoreApplicationState

この警告が引き続き発生する場合は、Xcode でアプリを実行する方法を確認できます。Xcode シミュレーターでアプリを実行しましたが、特定のシーケンスに従って状態保存をトリガーする必要がありました。

  • Xcode シミュレーターでアプリを起動する
  • Xcode シミュレーターで、[ホーム] ボタンをクリックしてアプリをバックグラウンドにします。ビューコントローラーのencodeRestorableStateWithCoderメソッドを呼び出す必要があります
  • Xcode に戻り、「停止」ボタンをクリックしてシミュレーションを終了します。
  • Xcode シミュレーターで、[ホーム] ボタンをダブルクリックし、アプリ スイッチャーからアプリを削除して、
  • Xcode に戻り、アプリを再度実行します。

その警告は表示されません。他のシーケンスを使用すると、その警告が表示されるのを見ました。Xcode を使用して自分のデバイスで自分のアプリをデバッグしたとき、同じ手順を実行しましたが、警告は表示されませんでした。

警告は、Xcode がアプリを正しく終了できなかったため、状態復元ファイルが正しくディスクに保存されなかったことを示していると思います。

于 2013-11-23T01:29:29.990 に答える
0

シミュレーター:

  • これは、アプリのエンコード時にシミュレーターで初めて発生します。(理由は不明)
  • その後、この警告は表示されません。

デバイス:

デバイスで実行してみてください。

  1. デバイスで実行
  2. ホーム画面に移動します。
  3. Xcode での実行を停止する
  4. アプリ スイッチャーからアプリを削除する
  5. デバイスで再度実行
于 2016-10-21T02:51:34.410 に答える
0

ビューに復元 ID を付与してみてください。そうすることで、xib またはストーリーボードを開き、id を View Controller に割り当てることができます。

ここに画像の説明を入力

詳細: http://useyourloaf.com/blog/2013/05/21/state-preservation-and-restoration.html

于 2013-11-13T20:40:27.460 に答える