2012-02-17 14 views
1

私は、coredataでrestkitを使用し、SQLでgrailsバックエンドを使用するiosアプリケーションを実装しました。ネットワークに接続されていて、サーバーが稼動している限り、「取得」と「投稿」の部分が機能しています。IOSクライアントとサーバ間のオフラインの変更を維持し、アップデートする最も良い方法は何ですか?

私はオブジェクトを同期させるために、コアデータのプライマリキーとしてサーバーによって割り当てられたIDを使用しています。ユーザーがオフラインまたはサーバーに問題が発生したときにオブジェクトを作成または更新できるようにすると、状態を維持して後でサーバーを更新するにはどうすればよいでしょうか?私はこの点でベストプラクティスを知りたいと思います。

ありがとうございます!

答えて

0

私はこれをいくつかの方法で取り組んできましたが、これは簡単な作業ではありません。

最初に、すべてのCore DataモデルにNSAttributeを追加して、状態(つまり、POSTまたはPUTリクエストをサーバーに送信する必要があるかどうか)を追跡しました。その後、到達可能性の通知を監視し(RestKitはRKReachabilityObserver経由でこれらを公開します)、適切な方法で変更されたオブジェクトをサーバーに送信しました。私がこれに使用したコードはhereです(しかし、古く、直接使用しないでください)。

私が考案した2番目の方法は、本質的にキューであるコアデータエンティティを作成し、そのモデルの変更をキューに登録し、ネットワークが利用可能なときにサーバーと同期させることです。これは、この執筆時点でのギブスの議論のために公開されており、現時点では完全にはテストされていませんが、here it isです。

関連する問題