0

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

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

4

1 回答 1

3

反转排序顺序,并获取前 50 个。

编辑

但是,如何按时间顺序显示消息?我正在使用 NSFetchedResultsController。– 马特迪帕斯夸莱

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

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

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

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

但是,在我走得太远之前,我想知道查询对象的数量有什么问题。它实际上相当快。

在我从 Instruments 那里得到证据证明这是扼杀我的应用程序的瓶颈之前,我会尽可能地寻求最简单的解决方案。

于 2012-09-12T02:26:45.170 回答