与原生iPhone消息应用程序一样,我想编码AcaniChat以返回按时间顺序排序的最后50条消息。假设Core Data中共有200条消息。
我知道我可以使用fetchOffset = 150& fetchLimit = 50(实际上,在这种情况下我甚至需要fetchLimit,因为我想一直到最后一次获取?),但是我可以获取最后50条消息而无需先获取消息计数吗?例如,使用Redis,我可以将fetchOffset设置为-50。
答案 0 :(得分:3)
撤消排序顺序,抓住前50个。
修改强>
但是,如何按时间顺序显示消息?我 使用NSFetchedResultsController。 - MattDiPasquale
现在这不是你问题的一部分,是吗? - )
无论如何,FRC不是直接使用的。要求您的视图控制器提供信息,然后它会询问FRC。您可以使用简单的数学运算来转换部分/行以获得相反的顺序。
您还可以在内部使用第二个数组,该数组具有FRC中对象的副本,但具有不同的排序顺序。这也很简单。
更复杂,但更“学术上有趣”的是使用单独的MOC和自定义提取参数。
然而,在我向任何一条路走得太远之前,我想知道查询对象的数量有多么错误。它实际上非常快。
直到我从仪器那里得到证据证明它是杀死我的应用程序的瓶颈,我才会推动最简单的解决方案。