RESTKit:覆盖objectID相同但其他属性发生变化的对象。

Posted

技术标签:

【中文标题】RESTKit:覆盖objectID相同但其他属性发生变化的对象。【英文标题】:RESTKit: Overwriting objects where the objectID is the same, but other attributes have changed. 【发布时间】:2014-04-22 15:12:12 【问题描述】:

当我 GET 服务器时,我会检查每个对象的属性“objectID”,如果 objectID 已经在本地存储中,则不存储该对象。

问题:如果“objectID”存在,但它的其他属性已更改,因此应该用新对象替换整个对象,该怎么办?还有一个名为“lastModified”的属性会改变。我是否与“objectID”和“lastModified”进行比较?

【问题讨论】:

【参考方案1】:

一般是可以的,比较一下id,然后查看修改日期。不过尽量不要替换对象,而是将新对象传递给现有对象并让它自行更新(然后丢弃新对象)。

请注意,如果您使用的是 Core Data,那么 RestKit 可以使用唯一标识符为您处理此问题(因此它可以找到现有对象并在映射过程中更新它们)。

【讨论】:

我正在使用唯一标识符。我认为通过使用唯一标识符,它只查找 objectId。它是否也检查每个属性? 不,只有唯一标识符才能找到匹配项,然后比较每个属性来决定是否需要更新。 那是默认的 RESTKits 功能吗?我唯一需要指定的是唯一标识符? 使用 Core Data 时,是的。您可能还想查看使用 KVC 验证/不返回未从服务器更新的内容 我将 lastrequest 日期发送到服务器,服务器只返回在 lastrequest 日期之后被修改的对象。有没有更好的方法来使用 RESTKit 我应该阅读一下?

以上是关于RESTKit:覆盖objectID相同但其他属性发生变化的对象。的主要内容,如果未能解决你的问题,请参考以下文章

具有相同元素和属性名称的 RestKit XML 映射

RestKit/RKObjectMapping:从服务器加载数据后如何添加其他属性?

需要使用 RestKit 创建多个相同的实体

手动合并 Core Data 对象

RestKit 相同对象上的一对一映射,除了

相同 pathPattern 的 RestKit 多个响应描述符