私はまだ Core Data に慣れていないので、質問をお許しください。
私は、(簡単にするために)人々が自分自身や他の人に「挑戦」できるアプリを構築しています。ユーザーがすでに受け入れたチャレンジをローカルに保存して、オフラインで詳細を参照できるようにする必要があります。ただし、アプリがオンラインの場合、利用可能な課題、既に受け入れられている課題の新しい詳細などを表示するようにサーバーに要求しています。そのため、同期が必要になりますが、それを最小限に抑えようとしています.
今私の問題は、データをどのように構築するかです。するべきか:
(1) デバイスに格納されるデータのみのコア データ モデルを用意します。次に、サーバーから解析されているチャレンジのモデル クラスを構築し、テーブル ビューにチャレンジ オブジェクトの配列を表示するだけですか?
(2) 両方に 1 つのコア データ モデルを使用しますが、一時的な課題に対してローカルな課題をどうにかして区別しますか?
(3) 目的ごとに 1 つずつ、合計 2 つの永続ストアがありますか?
オプション 2 と 3 には明らかに NSFetchedResultsController を使用する利点がありますが、コーディングと保守がより複雑になる可能性があります。
また、同期の問題に関しては、次のことを行う必要があります。
(4) 各ローカル チャレンジが最後に更新されたときのタイムスタンプを保持し、サーバー上のタイムスタンプと照合して、新しい詳細をサーバーにプッシュする必要があるかどうかを確認します。
(5) キーパスの配列と変更を保存し、インターネット接続が再び利用可能になったら、それをサーバーにプッシュします。
これら2つの問題を解決するための最良のアプローチは何でしょうか。
どうもありがとう!