• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-12 22:15:51 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

我想我应该澄清一下,我更关心如何进行抓取,而不是如何将它们粘贴到 table 的末端,但如果有这方面的建议,我很想听听。这些记录也没有存储在托管对象中,它们只是在内存中。

更新:在将我的 Google 搜索从“分页”切换到“分页”后,我遇到了 RKObjectPaginator并意识到我正在处理的 API 非常脑残,并且不会输出有关您所在页面或其大小的任何计数或数据。



Best Answer-推荐答案


如您所说,您通常可以使用 RKObjectPaginator。但有时,正如您所说,如果您的 API 不兼容,它就不能很好地工作。

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

1) 创建 RKObjectPaginator 的子类(如果您想沿着这条路线走,也可以创建自己的类)。

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

- (void) objectLoaderRKObjectLoader *)loader willMapDatainout __autoreleasing id *)mappableData;

3) 在此方法中,您获取 mappableData 对象并找到“下一页”参数。不管你怎么做,这取决于你。下面是一个使用 Bing API 的示例。

- (void) objectLoaderRKObjectLoader *)loader willMapDatainout __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];
    }
}

重要的是在将数据传递到目标对象之前映射数据。这有效地允许您使用一个响应执行两个映射(一个映射到分页器对象,一个映射到您的数据模型)。​​

关于objective-c - 如何使用 RestKit 获取结果页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11751880/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap