我正在 iPad 和网络服务器之间构建同步功能。我使用的方法非常接近 described here .我只有一种类型的对象,我们称它为故事,必须同步。它是一个核心数据实体(托管对象)。
剩下的我要解决的问题是知道“什么时候发生变化并且需要同步到服务器”。一种方法是找到修改 Story 的每一段代码,并让它也设置一些 needsSyncing 标志。这看起来并不优雅,而且随着时间的推移,开发人员可能会忘记更新新类型修改的标志。
Core Data 对象是否有一种观察自身的方法,所以无论何时进行任何更改,都会执行特定的方法?这将使这变得非常容易。
另一个选项可能是在对托管对象上下文执行保存操作之前使用 isUpdated 方法。您要么必须只在一个地方调用保存,要么在您保存的每个地方都这样做(听起来像第一个选项)。我想我可以制作一个辅助方法,在保存之前遍历所有 Story 对象,看看是否有任何对象需要设置其标志。唯一的缺点是我会遍历系统中的所有 Story 对象以进行任何保存,即使是与 Story 无关的保存也是如此。
无论如何,我会停止尝试大声猜测解决方案 - 有没有人有过这样做的好方法的经验?
最佳答案
SDK 满足您的需求。查看NSManagedObjectContext class reference ,在页面的最后,MOC 将发布您可以订阅的通知,包括 NSManagedObjectContextObjectsDidChangeNotification。您可以收听这些并在保存 MOC 的同时进行更新调用。
关于objective-c - iOS 同步 - 让核心数据对象知道它必须被推送到服务器的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10415289/