如何使用RestKit获取结果页面?

我正在使用RestKit 0.10.1,我正在寻找一些示例代码来处理分页结果的Web服务。 我有GET请求获取第一页没有参数,并将其粘贴到UITableView。 理想情况下,当我到达一个页面的底部,它将获取下一页,并在底部插入这些值。

我想我应该澄清一点,我更关心如何做到抓取,而不是如何把它们放在桌子的尽头,但如果有任何build议,我很乐意听到他们。 而且这些logging不会被存储在托pipe对象中,它们只是在内存中。

更新:在我的谷歌search从“分页”切换到“分页”后,我遇到了RKObjectPaginator,并意识到我正在处理的API是相当大脑死亡,并不输出任何计数或数据有关您的网页或其尺寸。

正如你所说,你可以正常使用RKObjectPaginator。 但是有时候,正如你所说的,如果你的API不符合要求,它也不能很好地工作。

您可以通过执行以下操作完全自定义分页:

1)创build一个RKObjectPaginator的子类(或者如果你想沿着这条路线走你自己的类)。

2)关键是重写这个委托方法

- (void) objectLoader:(RKObjectLoader *)loader willMapData:(inout __autoreleasing id *)mappableData; 

3)在这个方法中,你使用mappableData对象并find“下一页”参数。 但是,这是由你自己决定的。 以下是使用Bing API的示例。

 - (void) objectLoader:(RKObjectLoader *)loader willMapData:(inout __autoreleasing id *)mappableData { NSMutableDictionary* d = [[*mappableData objectForKey: @"d"] mutableCopy]; NSString* next = [d objectForKey: @"__next"]; if(!next) { currentOffset = 0; } else { NSDictionary* params = [next queryParameters]; perPage = [[params objectForKey: @"$top"] intValue]; currentOffset = [[params objectForKey: @"$skip"] intValue]; } } 

重要的是在将数据传递给目标对象之前映射数据。 这有效地允许你做一个响应(一个映射到paginator对象,一个映射到你的数据模型)做两个映射。