Examples of CloudKit and locally cached data

First of all I want to thank the Apple team for their good WWDC videos about CloudKit. But there is one thing where I still struggle with CloudKit. Maybe someone can give me some good best practices.


It was mentioned in the WWDC video that when you send a write/modify CKOperation to the CloudKit server we won't get an updated change token. How does Apple handle the situation when they fetch new data from the server in their apps? That was missing in the WWDC videos.


Let me explain it in more detail: You have locally changed objects on your device (may you add an item to a shopping list) and when you fetch the next time data from the CloudKit server (either from a push or an application launch) you will get the same data back together with modified data from other devices. How to you compare this records? I would store my local objects together with the recordIDs and compare them, but maybe there is an simpler solution.

It was also mentionied in their example todo list app that they use CoreData for their persistent store. Is CoreData the way to go for caching local data from CloudKit or are codeable objects also as easy to use?