Parse SDK for iOS を使用して結果をページ分割する適切な方法を見つけようとしています。私が抱えている問題は、ページ付けしようとしているコンテンツが頻繁に変更される可能性があることです。
例えば:
サーバーに多数のオブジェクトが保存されているアプリがあり、これらのオブジェクトを取得するためのリクエストは、オブジェクトが多い場合に備えて、最新のものから順に並べ替えられ、ページ分割されます。ユーザーがスクロールすると、現在のページの最後のオブジェクトに近づいているため、次のページが要求されます。
ユーザーが 2 ページ目にスクロールすると、新しいオブジェクトがオブジェクトのリストに追加され、ユーザーは別のページを上にスクロールするとします。次のページが要求されると、2 ページ目の最後のメッセージの複製が取得されます。ページ 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.
}];
}
それは私が問題を抱えているリクエストではなく、新しいオブジェクトが追加されたときにテーブル内のページングを適切に処理する方法を考え出すことです.