我有添加,更新的记录。然后将它们与服务器同步。 根据服务器响应,如果其中一个无法更新,我希望NSManagedObject具有以前的值。正如我研究的那样,UndoManager作为堆栈工作,所以我找不到任何带有Id和撤消记录的记录,对不对?
最后,你对这个问题有什么建议?
答案 0 :(得分:0)
您可以通过引入自己的ID属性并将其与服务器同步来跟踪对象。我认为这是一个坚固而强大的设计 - 我已经多次使用它没有问题。
Apple确实为每个托管对象提供了一个objectID,但这实际上是为了确保跨不同托管对象上下文的数据的一致性。我不建议为外部系统“滥用”此ID。
您的服务器可以提供旧值(以及未更新的消息),您可以将其写回Core Data存储,使用您的ID属性查找记录。对于更细粒度的更改和更新管理,您甚至可以使用时间戳属性。