あなたの経験に基づいて、メイン スレッドのみの NSManagedObjectContext を 1 つだけ使用する iOS アプリの場合、信頼性とパフォーマンスに関して、サーバーからディスクにユーザー設定とキャッシュされたデータを永続化する最良の方法は何ですか?
次のオプションが表示されます。
- すべての変更の最後にコンテキストを保存する
- アプリの終了時にのみコンテキストを保存します (Apple のサンプルのように)
- アプリの終了時にコンテキストを保存する、バックグラウンドに移行する、またはアクティブでなくなる (電話の着信など)
- タイマーを追加して、変更がある場合にコンテキストを時々保存します
- コンテキストを保存するための呼び出しを集めて、頻繁に起動しないようにする、特別に準備された遅延保存ルーチンを呼び出します
現在、最初のオプションを使用しているため、信頼性は非常に高く、デバッグ セッション中に Xcode がアプリを終了した後でもデータは保存されますが、アプリがますます複雑になるとパフォーマンスが低下する可能性があります。サーバーからのデータの非同期ロードにより、アプリのフローの任意の時点で DB への変更が発生する可能性がある場合。
一方、アプリの特定のイベント (終了、バックグラウンドへの移行など) で保存すると最高のパフォーマンスが得られますが、経験から、ユーザーがデータを失わないようにするのに十分であると言えますか?