谁可以展示一些关于如何使用AFPaginator进行分页的示例。我正在使用AFRestClient,并且我需要在实体的请求中关联pagerId、offset和count参数。
在我看来,通过使用AFPaginator关联这些参数应该是直接的。我到处寻找一些例子,但没有找到任何例子。
发布于 2013-08-10 04:06:20
我可以在分页方面取得一些进展,但还没有完成。
如果fetch请求的fetchLimit和fetchOffset不等于零,它将根据请求创建参数。
因此,在我的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请求不同的页面,但由于我使用的是NSFetchedResultsController,所以当我滚动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数。
这不是对你的问题的直接回答,但我希望它能帮助你找到答案并发布在这里:)
如果我发现了更多的东西,我会更新这个。
https://stackoverflow.com/questions/17416107
复制相似问题