我想通过在“创建”日期之前对它们进行排序来从UITableView中的Parse加载最后30条记录(在这种情况下为消息)。我能够做到这一点,但是,消息会一直排序到第30条记录,而下一条记录不会显示在我的UITableView中。
这是我的代码:
let messagesQuery = PFQuery(className: "Message")
messagesQuery.includeKey("conversation")
messagesQuery.includeKey("author")
messagesQuery.whereKey("conversation", equalTo: conversation)
messagesQuery.orderByAscending("createdAt")
messagesQuery.limit = 30
messagesQuery.findObjectsInBackgroundWithBlock { (results, error) -> Void in
}
我知道我可以改用
orderByDescending("createdAt")
...但是,如果这样做,我的消息顺序将颠倒。我的意思是,我收到了最后30条消息,但是顺序相反(最旧的消息出现在对话的底部,而最新的消息出现在对话的顶部)。那么,如何解决此问题,使其显示最近30条消息,而最新消息则显示在对话的底部?
谢谢!
最佳答案
设置查询的跳过值。
[messagesQuery setSkip: 0];
参考链接
https://parse.com/questions/fetch-all-data-in-a-table-using-pfquery