如何获取与RestKit结果的页面?(How to fetch pages of results w

2019-07-30 17:51发布

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

我想我应该澄清,我更关注的是如何做的比取如何将它们钉到表的末尾,但如果有该建议,我很想听听他们。 此外,这些记录不被存储在管理对象,他们只是在内存中。

更新:从“寻呼”交换我的谷歌搜索后,“分页”我碰到RKObjectPaginator并意识到我处理的API是相当脑死亡和不输出任何数或数据哪些页面你,或者其尺寸。

Answer 1:

正如你所说,你可以正常使用RKObjectPaginator。 但有时,你也说了,这不一样,如果你的API不符合工作得很好。

您可以通过执行类似下面的完全自主的分页:

1)创建RKObjectPaginator(或您自己的类的子类,如果你想要走这条路线)。

2)关键是要重写此委托方法

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

3)在此方法中,你把mappableData对象,并找到“下一页”的参数。 但是你这样做是你的。 以下是使用秉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];
    }
}

最重要的是它传递到目标对象之前,地图,数据。 这有效地让你做两张地图有一个响应(一个映射到分页程序对象,一个映射到你的数据模型)。



文章来源: How to fetch pages of results with RestKit?