15

iOS 6で新しいアプリの状態の保存/復元機能を使用しようとしていますが、アプリを強制終了した場合は(application:shouldRestoreApplicationState :)メソッドが呼び出されないため、アプリの状態は復元されませんが、実行している場合デバッガーから呼び出されます。

plistに追加して(アプリケーションはバックグラウンドで実行されません)、YESに設定すると機能しましたが、YESに設定したくありません。(アプリケーションはバックグラウンドで実行されません)をYESに設定せずに、誰かがそれを動作させたかどうか疑問に思いました。

4

1 に答える 1

27

アップルのドキュメントから:

ユーザーがアプリを強制終了すると、システムはアプリの保存状態を自動的に削除します。アプリが強制終了されたときに保持されている状態情報を削除するのは、安全上の予防措置です。(安全上の予防措置として、起動中にアプリが 2 回クラッシュした場合、システムは保持された状態も削除します。) アプリの状態を復元する機能をテストする場合は、デバッグ中にマルチタスク バーを使用してアプリを強制終了しないでください。代わりに、Xcode を使用してアプリを強制終了するか、一時的なコマンドまたはジェスチャをインストールして exit をオンデマンドで呼び出すことにより、プログラムでアプリを強制終了します。

経験上、最も簡単な方法は、ホーム ボタン (シミュレーターの場合は Command+Shift+H) を押してアプリをバックグラウンドにすることです。次に、Xcode の停止ボタンを使用します。ドキュメントが示唆するように、デバッグ終了ジェスチャーも機能します。

アップデート:

小さな回避策を見つけました。アプリはその状態を Library/Saved Application State/[バンドル ID]-[アプリ名].savedState/data.data に保存します。

シミュレーターを使用する場合、このファイルをコピーして、特定の状態に復元したいときにいつでもドロップできます。

同様に、デバイスでは、オーガナイザーから .xcappdata アーカイブを生成できます。次に、その保存された状態から復元する場合は、.xcappdata アーカイブをアップロードできます。

于 2012-10-08T19:40:36.787 に答える