核心数据获取最近50个对象?

时间:2012-09-12 02:13:52

标签: iphone ios core-data nsfetchrequest

与原生iPhone消息应用程序一样,我想编码AcaniChat以返回按时间顺序排序的最后50条消息。假设Core Data中共有200条消息。

我知道我可以使用fetchOffset = 150& fetchLimit = 50(实际上,在这种情况下我甚至需要fetchLimit,因为我想一直到最后一次获取?),但是我可以获取最后50条消息而无需先获取消息计数吗?例如,使用Redis,我可以将fetchOffset设置为-50。

1 个答案:

答案 0 :(得分:3)

撤消排序顺序,抓住前50个。

修改

  

但是,如何按时间顺序显示消息?我   使用NSFetchedResultsController。 - MattDiPasquale

现在这不是你问题的一部分,是吗? - )

无论如何,FRC不是直接使用的。要求您的视图控制器提供信息,然后它会询问FRC。您可以使用简单的数学运算来转换部分/行以获得相反的顺序。

您还可以在内部使用第二个数组,该数组具有FRC中对象的副本,但具有不同的排序顺序。这也很简单。

更复杂,但更“学术上有趣”的是使用单独的MOC和自定义提取参数。

然而,在我向任何一条路走得太远之前,我想知道查询对象的数量有多么错误。它实际上非常快。

直到我从仪器那里得到证据证明它是杀死我的应用程序的瓶颈,我才会推动最简单的解决方案。