【发布时间】:2014-01-08 13:53:26
【问题描述】:
我正在使用 RestKit 0.20 将数据映射到核心数据并在 UITable 中显示。我正在将数据(一个“活动”对象)写入 mainQueue 的 ManagedObjectContext 并且一切正常。现在我需要第二张带有 Future-Activity 的表格,以及第三张带有 Past-Activity 的表格。由于排序是在服务器端完成的,因此我需要为每个表创建一个 ManagedObjectContext。我该如何处理并拥有持久数据。我需要使用“newChildManagedObjectContextWithConcurrencyType”吗?
【问题讨论】:
-
您不需要为此使用不同的上下文(实际上是持久存储)。您需要一些方法来标记您的
Activity对象,以便您知道它们的用途。您收到的 JSON 是什么?你可以使用一些请求元数据吗? -
我为每种情况(全部、未来或过去)使用不同的 Url 参数,因此有效负载完全符合我的需要并按 asc/desc 排序。但是如果我显示过去的活动然后点击未来按钮,我必须等待新的有效负载来显示未来的活动。如果我已经将数据保存在持久存储中,并且它没有更改,那么用户甚至根本不会注意到任何延迟。如果可能的话,这就是我的目标。
-
为了回答您的问题,Json 具有以下字段:“all_day”“start_time”“end_time”,因此我可以使用它们来显示数据,直到有效负载到达。
-
您不能简单地获取“所有”活动,将它们保存到商店,然后使用谓词将它们分隔到您的类别吗?
-
我能做到。因为我也在分页,所以我必须处理谓词和分页。因此,如果我在所有活动上分页了 2 页,切换到未来活动,那么当我收到带有未来活动的新有效负载时,我必须清除 ManagedObject。如果我然后切换回所有活动,我会丢失之前的 2 页。当服务器准确地提供我需要的东西时,似乎我必须涵盖许多角度。
标签: ios core-data restkit restkit-0.20