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相同但其他属性发生变化的对象。的主要内容,如果未能解决你的问题,请参考以下文章