0

iPadとWebサーバー間の同期機能を構築しています。ここで説明するアプローチにかなり近いアプローチを使用しています。同期する必要のあるオブジェクトのタイプは1つだけです。これをストーリーと呼びましょう。これはコアデータエンティティ(管理対象オブジェクト)です。

私が解決しなければならない残りの問題は、「何かが変更され、サーバーに同期する必要があるときはいつでも」を知ることです。1つのアプローチは、ストーリーを変更するすべてのコードを見つけて、needsSyncingフラグも設定することです。それはエレガントではないようで、時間の経過とともに、開発者は新しいタイプの変更のためにフラグを更新するのを忘れる可能性があるようです。

Core Dataオブジェクトにはそれ自体を監視する方法があるので、変更が加えられるたびに特定のメソッドが実行されますか?それはこれをかなり簡単にするでしょう。

別のオプションは、管理対象オブジェクトコンテキストで保存操作を実行する直前にisUpdatedメソッドを使用することです。保存を1つの場所でのみ呼び出すか、保存するすべての場所でこれを行う必要があります(最初のオプションのように聞こえます)。保存する直前にすべてのStoryオブジェクトを調べて、フラグを設定する必要があるオブジェクトがあるかどうかを確認するヘルパーメソッドを作成できると思います。その唯一の欠点は、ストーリーとは関係のない保存であっても、システム内のすべてのストーリーオブジェクトをトラバースして保存することです。

とにかく、私は解決策を大声で推測しようとするのをやめます-誰かがこれを行うための良い方法の経験がありますか?

4

1 に答える 1

3

SDKでカバーできます。NSManagedObjectContextクラスリファレンスを参照してください。ページの最後に、MOCは、NSManagedObjectContextObjectsDidChangeNotificationなど、サブスクライブできる通知を投稿します。これらをリッスンして、MOCの保存とほぼ同時に更新呼び出しを行うことができます。

于 2012-05-02T14:10:14.433 に答える