任何人都可以展示一些关于如何使用 AFPaginator 进行分页的示例。我正在使用 AFRestClient,我需要在我对实体的请求中关联 pagerId、offset 和 count 参数。
在我看来,通过使用 AFPaginator 关联这些参数应该是直截了当的。我搜索了一些示例,但找不到任何示例。
任何人都可以展示一些关于如何使用 AFPaginator 进行分页的示例。我正在使用 AFRestClient,我需要在我对实体的请求中关联 pagerId、offset 和 count 参数。
在我看来,通过使用 AFPaginator 关联这些参数应该是直截了当的。我搜索了一些示例,但找不到任何示例。
我可以在分页方面取得一些进展,但还没有完成。
如果获取请求的 fetchLimit 和 fetchOffset 不等于 0,它将根据请求创建参数。
因此,在我的AFRESTClient
子类上,在创建请求之前,在方法上-requestForFetchRequest:withContext:
我将分页器设置为:
NSMutableDictionary *mutableParameters = [NSMutableDictionary dictionary];
self.paginator = [AFPageAndPerPagePaginator paginatorWithPageParameter:@"page" perPageParameter:@"per"];
[mutableParameters addEntriesFromDictionary:[self.paginator parametersForFetchRequest:fetchRequest]];
request = [self requestWithMethod:@"GET" path:@"feed" parameters:mutableParameters];
这将生成一个类似的请求http://domain.com/feed?page=1&per=20
。页面是根据fetchOffset
和计算FetchLimit
的
NSUInteger perPage = fetchRequest.fetchLimit == 0 ? kAFPaginationDefaultPerPage : fetchRequest.fetchLimit;
NSUInteger page = fetchRequest.fetchOffset == 0 ? kAFPaginationDefaultPage : (NSUInteger)floorf((float)fetchRequest.fetchOffset / (float)perPage) + 1;
所以,我可以让 fetch 请求一个不同的页面,但是当我使用 aNSFetchedResultsController
时,当我滚动 a 时,我无法让它请求另一个页面UITableView
。我试图做一些事情:
[NSFetchedResultsController deleteCacheWithName:[self.fetchedResultsController cacheName]];
self.fetchedResultsController.fetchRequest.fetchOffset = self.visibleChunk * self.chunkSize;
[_fetchedResultsController performSelectorOnMainThread:@selector(performFetch:) withObject:nil waitUntilDone:NO modes:@[ NSRunLoopCommonModes ]];
在这里,visibleChunk
应该是用来带来另一个页面的,并且chunkSize
是一个API请求所需的itens数。
这不是对您问题的直接答复,但我希望它可以帮助您找到答案并在此处发布:)
如果我发现更多东西,我会更新这个。