与原生 iPhone 消息应用程序一样,我想编写AcaniChat代码以返回按时间顺序排序的最后 50 条消息。假设 Core Data 中总共有 200 条消息。
我知道我可以使用 fetchOffset=150 & fetchLimit=50 (实际上,在这种情况下我什至需要 fetchLimit 因为我想一直获取到最后?),但是我可以获取最后 50 条消息而无需先获取消息数?例如,使用 Redis,我可以将 fetchOffset 设置为 -50。
与原生 iPhone 消息应用程序一样,我想编写AcaniChat代码以返回按时间顺序排序的最后 50 条消息。假设 Core Data 中总共有 200 条消息。
我知道我可以使用 fetchOffset=150 & fetchLimit=50 (实际上,在这种情况下我什至需要 fetchLimit 因为我想一直获取到最后?),但是我可以获取最后 50 条消息而无需先获取消息数?例如,使用 Redis,我可以将 fetchOffset 设置为 -50。
反转排序顺序,并获取前 50 个。
编辑
但是,如何按时间顺序显示消息?我正在使用 NSFetchedResultsController。– 马特迪帕斯夸莱
现在这不是你问题的一部分,是吗;-)
无论如何,不直接使用 FRC。您的视图控制器被要求提供信息,然后它会询问 FRC。您可以进行简单的数学运算来转换部分/行以获得相反的顺序。
您还可以在内部使用第二个数组,该数组具有 FRC 中对象的副本,但排序顺序不同。这也很简单。
更复杂但更“学术上有趣”的是使用带有自定义提取参数的单独 MOC。
但是,在我走得太远之前,我想知道查询对象的数量有什么问题。它实际上相当快。
在我从 Instruments 那里得到证据证明这是扼杀我的应用程序的瓶颈之前,我会尽可能地寻求最简单的解决方案。