objective-c - 如何使用 RestKit 获取结果页面?
<p><p>我正在使用 RestKit 0.10.1,我正在寻找一些示例代码来处理对结果进行分页的 Web 服务。我有 GET 请求获取没有参数的第一页并将它们粘贴到 UITableView 中。理想情况下,当我到达页面底部时,它会获取下一页并将这些值插入底部。 </p>
<p>我想我应该澄清一下,我更关心如何进行抓取,而不是如何将它们粘贴到 table 的末端,但如果有这方面的建议,我很想听听。这些记录也没有存储在托管对象中,它们只是在内存中。 </p>
<p><strong>更新:</strong>在将我的 Google 搜索从“分页”切换到“分页”后,我遇到了 <a href="http://restkit.org/api/master/Classes/RKObjectPaginator.html" rel="noreferrer noopener nofollow">RKObjectPaginator</a>并意识到我正在处理的 API 非常脑残,并且不会输出有关您所在页面或其大小的任何计数或数据。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>如您所说,您通常可以使用 RKObjectPaginator。但有时,正如您所说,如果您的 API 不兼容,它就不能很好地工作。</p>
<p>您可以通过执行以下操作来完全自定义分页:</p>
<p>1) 创建 RKObjectPaginator 的子类(如果您想沿着这条路线走,也可以创建自己的类)。</p>
<p>2) 关键是重写这个委托(delegate)方法</p>
<pre><code>- (void) objectLoader:(RKObjectLoader *)loader willMapData:(inout __autoreleasing id *)mappableData;
</code></pre>
<p>3) 在此方法中,您获取 mappableData 对象并找到“下一页”参数。不管你怎么做,这取决于你。下面是一个使用 Bing API 的示例。</p>
<pre><code>- (void) objectLoader:(RKObjectLoader *)loader willMapData:(inout __autoreleasing id *)mappableData {
NSMutableDictionary* d = [[*mappableData objectForKey: @"d"] mutableCopy];
NSString* next = ;
if(!next) {
currentOffset = 0;
}
else {
NSDictionary* params = ;
perPage = [ intValue];
currentOffset = [ intValue];
}
}
</code></pre>
<p>重要的是在将数据传递到目标对象之前映射数据。这有效地允许您使用一个响应执行两个映射(一个映射到分页器对象,一个映射到您的数据模型)。</p></p>
<p style="font-size: 20px;">关于objective-c - 如何使用 RestKit 获取结果页面?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/11751880/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/11751880/
</a>
</p>
页:
[1]