:
あなたはどんな条件なしでクエリを実行します。この場合のように、サーバーからすべてのユーザーの行を照会する必要があり、ユーザーが自分のアプリにログインする最初の時間。このクエリでは、の制限を使用して、サーバーによって返される結果を制限することができます。あなたは、サーバーから結果を取得するときは、する必要があります:
- ストア、ローカルデータベース内のすべての行
- ストアNSUserDefaults
内の現在NSDate
サーバーへの次の呼び出しは取得することになります更新された行のみ。
- があなたのNSUserDefaultsから演算子:GreaterThanあなたlastSyncDateの条件で(私たちは上記の保存1)
- クエリを実行しますが、この時間は、最後の同期の日付を取得します。それを達成するためにあなたがする必要があります。
最後にアイテムを取得するためにあなたのコードは、次のようになります。
// check if we synced the date before
let lastSyncDate = NSUserDefaults.standardUserDefaults().objectForKey("lastSyncDate")
let query = PFQuery(className: "MyParseObjectClassName")
if (lastSyncDate != nil){
// get only records that were created/updated since the last sync date
query.whereKey("updatedAt", greaterThan: lastSyncDate!)
}
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
// store objects in parse local data store
if (objects?.count > 0){
PFObject.pinAllInBackground(objects)
}
// save the last sync date in user defaults
NSUserDefaults.standardUserDefaults().setValue(NSDate(), forKey: "lastSyncDate")
NSUserDefaults.standardUserDefaults().synchronize()
}
ここにがあります。ここでは、ローカルデータストアを解析する方法を使用しています。これにより、コアデータを使用せずにローカルデータベースに解析オブジェクトを簡単に格納できます。 parseローカルデータストアは、iOS SDKを解析することによって提供され、時間と労力を大幅に節約できます。そのため、活用することを強くお勧めします。 ローカルデータストアも、作成/更新されたオブジェクトに注意し、自動的に新しいオブジェクトを作成し、既存のオブジェクトを更新します。
あなたはこの質問は、コアデータやモンゴとは何の関係もないように思わhere
でそれについての詳細を読むことができます... – Wain