如何判断 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 是不是通过 CoreData Sqlite 处理实体唯一性?