如何判断 RestKit v0.20.2 是不是提供了实体缓存的结果?

Posted

技术标签:

【中文标题】如何判断 RestKit v0.20.2 是不是提供了实体缓存的结果?【英文标题】:How can I tell if RestKit v0.20.2 served a result from the entity cache?如何判断 RestKit v0.20.2 是否提供了实体缓存的结果? 【发布时间】:2013-07-19 09:56:09 【问题描述】:

我有一个由 Restkit 管理的核心数据映射对象,并且能够使用

从我的 Web 服务中获取 JSON

[[RKObjectManager sharedManager] getObjectsAtPath:jobRequest parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)

效果很好。如果我多次请求同一个对象,如果它存在于RKInMemoryManagedObjectCache 中,则它不会创建新的托管对象。

不过,我的问题是,如何判断对象是否已经在缓存中?如果用户已经拥有该项目,我想向用户显示“最新”样式消息-我可以针对我的核心对象手动查询此消息,但这是否由 RestKit 公开(可能在 RKMappingResult 参数中) success 块)?

【问题讨论】:

知道您已经拥有该对象并不一定意味着它是最新的,不是吗?如果是这样,您不需要发出网络请求... 该对象只会存在一次,所以如果我拥有它,它就是最新的。我不知道我是否还拥有它,因为服务器会为请求返回一个或多个对象。例如,将代码提交给服务以返回日常任务或多个任务。客户端我无法破译代码,因此无法判断应该返回哪些对象(或者我是否已经拥有它们)。我也无法修改网络服务以使这些代码过期 【参考方案1】:

您将使用 Core Data 来确定新功能。您可以观察托管对象上下文的变化,它会为您提供插入、更新和删除的对象集。

【讨论】:

以上是关于如何判断 RestKit v0.20.2 是不是提供了实体缓存的结果?的主要内容,如果未能解决你的问题,请参考以下文章

如何观察 RestKit 中是不是存在字段。值为 null 时不调用 Setter

如何在没有响应描述映射的情况下使用 RestKit?

Restkit 是不是通过 CoreData Sqlite 处理实体唯一性?

使用 Restkit 解析纯文本

如何从 JavaScript 滚动 <webview> 标签的内容?

Restkit:发布一个 id 数组而不是完整的对象