1

オブジェクトを永続メモリに保存する必要があります。現在使用しているオプションは、アプリが終了する前にオブジェクトをNSUserDefaultsに保存し、アプリの実行開始時にオブジェクトを取得することです。アプリケーションがクラッシュした場合に重要なデータが失われる可能性があるため、このアプローチはあまり便利ではありません。オブジェクトを保存する方法はありますが、オブジェクトのプロパティが変更されると、この変更は自動的にディスクに保存されますか?それを除いて、RAM内のオブジェクトとそのアーキテクチャを使用しているディスク内のオブジェクトを台無しにする危険があります。

例えば

-> Load objects from memory
-> [object1 setValue:@"5"]
-> Application crashes

クラッシュ後、ユーザーがアプリケーションを開いたときに、データを保存したことがないため、値@"5"は使用できません。

コードによってより安全で保守しやすくするための代替手段はありますか?CoreDataはこの問題に適したオプションですか、それともオーバーヘッドですか?

4

2 に答える 2

2

データを保存する必要がある場合は、CoreDataが最適です。必要に応じて、変更のたびに保存できます。

情報の保存が非常に重要な場合は、アプリケーションのクラッシュの原因となる原因を特定して修正することをお勧めします。アプリがランダムにクラッシュする場合、解決策がどれほど優れていても、データが失われる可能性があります。

于 2012-08-13T16:41:48.363 に答える
1

値が変更されたときにデータを即座に保存することは、実際には最善のオプションではありません。アプリのパフォーマンスには高すぎる。NSUserDefaultsアプリが強制的に閉じられたとき、またはバックグラウンドで入力されたときに、値を保存するために引き続き使用する必要があります。

あなたのアプリはあなたによって設計されています。クラッシュしてはいけませんが、クラッシュしても心配しないでください。アナモリーは実際には処理できません。

于 2012-08-13T16:42:00.840 に答える