Ios RestKit 0.20和ManagedObjectContext

Ios RestKit 0.20和ManagedObjectContext,ios,core-data,restkit,restkit-0.20,Ios,Core Data,Restkit,Restkit 0.20,我正在使用RestKit 0.20将数据映射到核心数据,并将其显示在UITable中。我正在将数据(一个“活动”对象)写入mainQueue的ManagedObjectContext,一切正常。现在我需要第二张桌子,上面有未来的活动,还有第三张桌子,上面有过去的活动。由于排序是在服务器端完成的,因此我需要为每个表提供一个ManagedObjectContext。我如何处理这个问题并拥有持久数据。“newChildManagedObjectContextWithConcurrencyType”是我

我正在使用RestKit 0.20将数据映射到核心数据,并将其显示在UITable中。我正在将数据(一个“活动”对象)写入mainQueue的ManagedObjectContext,一切正常。现在我需要第二张桌子,上面有未来的活动,还有第三张桌子,上面有过去的活动。由于排序是在服务器端完成的,因此我需要为每个表提供一个ManagedObjectContext。我如何处理这个问题并拥有持久数据。“newChildManagedObjectContextWithConcurrencyType”是我需要使用的吗?

保留一个存储区。使用谓词筛选出所需的项

如果您可以下载所有数据(并且您很乐意这样做,即使其中一些数据可能没有被用户使用),并且您可以标记它们的用途,那么这是一个选项

从RestKit的角度来看,您可以在映射过程中使用元数据标记项目,以便知道应该如何使用它们(然后在此基础上进行筛选)。这要求您为该项添加一个新的键-但是,如果一个项可能在所有响应中,这将是有问题的,因为这些值将被覆盖

要使用元数据,只需添加一个新映射,如:

@"@metadata.URL": @"requestURL"

其中,
@metadata.URL
是用于发出请求的URL,
requestURL
是实体上可用于筛选的属性。谓词将检查
是否包含
您的类型(“全天”、“开始时间”和“结束时间”)。

不需要其他上下文(实际上是持久存储)。您需要某种方法来标记
活动
对象,以便了解它们的用途。您收到的JSON是什么?您可以使用一些请求元数据吗?我为每个案例(全部、未来或过去)使用不同的Url参数,因此有效负载完全符合我的需要,并对asc/desc进行排序。但是如果我显示过去的活动,然后点击未来按钮,我必须等待新的有效负载显示未来的活动。如果我已经在一个持久性存储中保存了数据,并且它没有改变,那么用户甚至不会注意到任何延迟。如果可能的话,这就是我的目标。为了回答你的问题,Json有以下字段:“all_day”“start_time”“end_time”,因此我可以使用它们来显示数据,直到有效负载到达。你不能简单地获取“all”活动,将它们持久化到存储,然后使用谓词将它们分离到你的类别中吗?我可以这样做。因为我也在分页,所以我必须处理谓词和分页。因此,如果我在所有活动上翻页2页,切换到未来活动,那么当我接收到未来活动的新负载时,我必须清除ManagedObject。如果我随后切换回所有活动,我将丢失之前的2页。似乎当服务器提供我所需要的东西时,我必须从多个角度来考虑。我将给出这个答案。每个项目都可以从其URL中筛选所有、未来和过去的项目。更不用说了。但是如何为RKPaginator发送@metadata.URL?我看到的示例使用RKMappingOperation,那么如何连接它们呢?您没有。元数据可用于映射。分页创建了URL。我一定缺少什么:我将字符串属性“requestURL”添加到我的Activitiy实体中,并将@“@metadata.URL”:@“requestURL”添加到我的RKEntityMapping中。但是requestURL为nil且未映射。日志输出为:未找到可映射属性值keypath'@metadata.URL'您已将其添加到响应映射中,是吗?这是我们在处理响应时获取额外信息的地方(paginator用于请求)。通过将@“@metadata.URL”更改为@@metadata.HTTP.request.URL.absoluteString”使其正常工作,因为我在Github上RestKit问题下的崩溃报告中看到了这一点。我想这是我的侥幸。。。。