私は最近、似たようなことをしました。
この問題を解決するには、一意の ID とグローバルな「更新されたタイムスタンプ」を割り当て、「デルタ」変更について考えます。
もっと詳しく説明すると、ユーザー設定にグローバルな「最新の更新」変数が保存されており、デフォルト値は 01/01/2010 です。
これは大まかに私の JSON サービスです。
response: {
metadata: {latestUpdate: 2013...ecc}
entities: {....}
}
次に、これが起こっていることです:
- 「最新の更新」を Web サービスに渡し、エンティティのリストを取得する
- コア データ ストアを更新する
- すべてがコア データでうまくいった場合、サービス メタデータからの「latestUpdate」は、ユーザー設定に保存された新しい「最新の更新変数」になりました。
それでおしまい。必要な変更のみを取得しています。もちろん、Web サービスは適切なリストを提供するように構成されています。つまり、データベースに支えられた Web サービスは、この問題をうまく処理することができ、iPhone を「単純なクライアント」のみにすることができます。
しかし、少量のデータの場合、リクエストごとにリスト全体をダウンロードする方がパフォーマンスが高い (そしてバグが少ない) と言わざるを得ません。