2015-09-16 10 views
8

オフラインとオンラインモードで実行する必要がある(Swiftで)アプリケーションを作成しています。オフラインモードでは、データはCoreDataにローカルに保存されます。ネットワーク(オンライン)を検出すると、サーバーと同期してバックエンドデータベースを更新する必要があります。どのようにそれについて行く必要があります。ライブラリやポッドはありますか?スウィフトコアデータとWebサーバーの同期

私はthis postを見ましたが、何も実行可能ではありません。それは高すぎるレベルなので、どこから始めたらいいのかわかりません。私はRay Wenderlichからこのリンクを見ましたが、Swiftに翻訳する方法はわかりません。

任意のチュートリアルのリンクも

答えて

8
  1. synchedとしてあなたCoreData Entityと名前、それに新しいBOOLattributeを追加します。参考になります。これは、基本的に各オブジェクトの同期ステータスを保存します。

  2. インターネット接続を確認する必要があります。 Refer to this link

  3. あなたがインターネット接続を持っているときはいつでも、ちょうどあなたのフェッチ要求で、次のNSPredicate使用してCoreDataからオブジェクトをフェッチ:今、あなただけのすべてのフェッチされたオブジェクトを同期して更新するには、あなたのWebサービスを使用することができます

    let isSynchedPredicate = NSPredicate(format: "synched = %@", false) 
    
  4. をサーバーに転送します。成功しアップロード時に、どのように1たびにアプリは、それが唯一と同期していない/ダウンロードデータをアップロードする必要がありserver..ideallyためにすべてをアップロードしていないことを保証するんtrue

+0

synchedプロパティを変更することを忘れDONOT server .. –

+0

このメソッドは、 'synched = false'を持つオブジェクトを確実に保証し、それらはサーバに更新されます。そのようなオブジェクトが存在しない場合は、更新Webサービスにヒットする必要はありません。繰り返しますが、オブジェクトのセットをアップロードした後、すべてのオブジェクトに対して 'synched'属性を' false'に設定する必要があるという事実を強調します。 – Nishant

+0

あなたはこれを組み込んだサンプルのXcodeプロジェクトを持っていますか?共有することができたらうれしく思います... –

関連する問題