在使用 CoreData 的 RestKit 的 mappingResult 中包含 foreignKeys 关系

Posted

技术标签:

【中文标题】在使用 CoreData 的 RestKit 的 mappingResult 中包含 foreignKeys 关系【英文标题】:Include foreignKeys relations in mappingResult from RestKit with CoreData 【发布时间】:2014-02-19 16:50:09 【问题描述】:

我想知道当我们进行映射时是否可以包含外键,这意味着如果我直接使用 mappingResult 并访问一些外来对象,CoreData 就不必总是去获取那个外键并且把它放在它的缓存中..?

    [[RKObjectManager sharedManager] getObjectsAtPath:@"/api/rest/activities/" parameters:parameters success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)
     
      failure:^(RKObjectRequestOperation *operation, NSError *error) 
     ];

例如在这种情况下,一个 Activity 对象与一个对象 User 有关系。如果我遍历 mappingResult,并且对于每个映射的活动,我都访问用户对象,那么现在,CoreData 将需要去获取该用户对象。 RestKit 是否有可能已经使用了 keyPaths 之类的东西(我们通常会使用它来预取外来对象?)

不让 CoreData 执行此操作的唯一方法是实际执行 NSFetchRequest 吗?

【问题讨论】:

【参考方案1】:

这不是 RestKit 的目的,也不是它返回给你的对象。虽然您可以编辑 RestKit 来做到这一点,但在某些情况下您不想这样做。

最好将有关您要获取的内容以及何时与您的 RestKit 使用/控制代码分开的信息。

【讨论】:

那么之后我应该做一个CoreData请求吗? 是的。通常,您需要在 fetch 上配置批处理等等......

以上是关于在使用 CoreData 的 RestKit 的 mappingResult 中包含 foreignKeys 关系的主要内容,如果未能解决你的问题,请参考以下文章

在 RestKit 中使用 RKObjectManager 从 CoreData 获取

无法使用 CoreData 配置 RestKit

在 Swift 中使用 RestKit 和 CoreData

使用 CoreData 时 RestKit 没有正确映射属性

使用 Restkit 或不使用 CoreData

RestKit 和 Coredata