2012-10-03 24 views
14

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

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

+1

この機能のみをテストするために、アプリケーションをバックグラウンドで実行することはできません。そして、あなたが完了したときにNOに戻り、実生活テストを行います。 – Daniel

+0

ダニエルの状態復元は、アプリがアプリストアに提出され、アプリストアからダウンロードしてインストールされている場合に「いいえ」に設定されます。 – artificis

答えて

24

ユーザ力がアプリを終了するとき、システムは自動的にアプリケーションの保存状態を削除Apple docs:

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

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

更新:

私の周りの小さな仕事を見つけました。アプリケーションはライブラリ/保存アプリケーション状態/ [バンドルID] - [アプリケーション名] .savedState/data.dataに状態を保存します。

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

同様に、デバイスでは、主催者から.xcappdataアーカイブを生成することができます。保存した状態から復元する場合は、.xcappdataアーカイブをアップロードできます。

+3

うん、私はバックグラウンドに送信し、Xcodeを停止して再起動して正常に動作していました。しかし、WWDCセッションでは、彼はアプリを殺していたので、私はアプリを殺すことによってそれを稼働させようとしていたのですが、それはplistの(アプリケーションはバックグラウンドで実行されません)アプリをバックグラウンドで実行している間、他の方法です。 –

+1

私は、プレゼンターがアプリを殺していることに気付きました。ベータ版とリリース版の間でアプリの保存動作が変更されたようです。このような不一致があったのは初めてではない。たとえば、Xcode 4は初期のベータ版で自動合成されましたが、公開前に削除されました。ちょうど最近になって、自動合成が返されました。 – rbrown

+2

ドキュメントへのリンクが壊れています(引用したテキストが変更されている可能性があります)。新しいURLは次のとおりです。https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StoragegiesforApplication/StrategiesforApplication.html#//apple_ref/doc/uid/TP40007072-CH5-SW31の実装 –

関連する問題