2016-10-10 1 views
0

私は、UserDefaultsを使用してアプリケーションの特定の部分に特定の設定を保存するsaveState()メソッドを作成しました。私は、アプリケーションを終了して戻るときに正常に動作しますが、実際に私の(iOS)電話をオフにすると、私は再びアプリケーションを起動すると、設定は保存されません。コード内のsaveState()メソッドを呼び出す場所に加えて、私は3つのAppDelegate関数(applicationWillResignActive、applicationDidEnterBackground、およびapplicationWillTerminate)でsaveState()を呼び出します。私はviewDidLoadにloadState()関数を持っているので、保存された情報はその時にロードされます。誰も私がやっていないことを知っていますか:電話の電源が切れたときに設定を保存/復元しますか?電話がオフになった状態を保存する

+0

特定のイベントに依存して保存をトリガーするのではなく(アプリが電話機の電源を切っていることを知らせるイベントはありません)、データが変更されると必ず保存してください何が起こるか – Paulw11

+0

ありがとうPaulw11!だから、あなたが私のアプリケーションの特定の(変更)ポイントでUserdefaultsを使用すると、AppDelegateの状態をさらに保存する必要はありません---すでに完了していると言います。そうですか? – punated

+0

そうです。あなたはデータを変更するたびにそれを行うかもしれないので、保存するための実際のコストはありません – Paulw11

答えて

0

ときiphoneオフ、AppDelegateのapplicationWillTerminate

機能は、アプリケーションを終了しようとしているときに呼び出され

どのように使用synchronize()程度後のリンゴのAPIで

と呼ばれる()あなたのステートセーブhttps://developer.apple.com/reference/foundation/userdefaults/1414005-synchronize

永続ドメインへの変更をディスクに書き込み、変更されていないすべての永続的なdomaを更新します何がディスク上にあるのかを調べる。

+0

'applicationWillTerminate'は呼び出されないかもしれません。 OPは、すでにこの機能を実装していると述べています。 – Paulw11

関連する問題