我正在尝试找出使用 Parse SDK for iOS 对结果进行分页的正确方法。我遇到的问题是我试图分页的内容有可能经常更改。
例如:
有一个应用程序在服务器上存储了一堆对象,获取这些对象的请求按照最新的优先排序并分页,以防有很多对象。当用户滚动时,当他们接近当前页面上的最后一个对象时,会请求下一页。
假设用户滚动到第二页,然后将一个新对象添加到对象列表中,然后用户向上滚动另一页。当请求下一页时,他们将获得第二页上最后一条消息的副本,并且由于第 0 页已经加载,因此不会显示新对象。
如何处理这样的事情?
如果对象首先排序最旧,实现将如何变化?
在此先感谢您的帮助。
编辑:请求伪代码
- (void)fetchObjectsForPage:(NSUInteger)page completion:(void (^)(NSArray *_Nullable objects, PageInfo *_Nullable pageInfo, NSError *_Nullable error))completion{
PFQuery *query = [SomeObject query];
[query orderByAscending:@"updatedAt"];
[query setLimit:50];
[query setSkip:50 * page];
[query findObjectsInBackgroundWithBlock:^{NSArray *_Nullable objects, NSError *_Nullable error){
...
>>> Do error checking and return array along with paging info (total number of objects, page size) or error in completion block.
}];
}
这不是我遇到问题的请求,而是在添加新对象时弄清楚如何正确处理表中的分页。