ios - 带有 CoreData 和分页的 RestKit

标签 ios rest core-data pagination restkit

我有简单的分页方案

http://api/users?page=1

在第 1 页给用户 在我可以问下一页之后

http://api/users?page=2

下一页等等

但是我有两个问题:

  1. 我无法命令用户响应显示,因为他们来自服务器给我

[user1, user2, user3] 但是当我尝试从数据库中获取时,我可以获得 [user2, user1, user3] 例如。

我尝试使用 RestKit 元数据属性

@metadata.mapping.collectionIndex

但是每个请求都是独立工作的。接下来发生 对于

http://api/users?page=1我有数组

[user1, user2, user3] collectionIndex will be [1,2,3]. 

然后我询问下一页并得到数组

[user4, user5, user6] collectionIndex also will be [1,2,3]

所以在数据库中

[user1, user4, user2, user5, user3, user6] 

这是不正确的。

那么第一个问题:是否可以在不重置 collectionIndex 的情况下将 collectionIndex 用于分页请求?

  1. 新到达的数据有问题

我问

http://api/users?page=1并获得了 2 个用户

[user1, user2] in response

在我询问第二页并获得 2 个用户之后

[user3, user4] in response

所以我再次询问 page=1,现在我得到了用户 [user01, user02]

然后增加页面索引,但是,在 page=2 中我得到了 [user1, user2] 并且在 UI 的 tableview 中我看到了所有记录

[user01, user02, user1, user2, user3, user4] 

然后页面询问没有任何变化,所以用户无法理解分页工作?

为了解决这个问题,我使用了 FetchRequestBlock,然后 page=1 我删除了所有用户 - 这是一个糟糕的解决方案。

如何从服务器更正分页数据?

最佳答案

  1. 不,您需要将页码添加到存储中并为页面和索引添加排序描述符。
  2. 我会说你的解决方案没问题。我不确定我是否会使用获取请求 block ,但是当您从头开始分页时,您需要将所有项目标记为无效或将其删除。

关于ios - 带有 CoreData 和分页的 RestKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32202788/

相关文章:

ios - 当应用程序后台锁定屏幕未完全动画化时

java - 使用 camel rest-dsl 相互调用

java - 在 Spring MVC 3 中指定 HTTP "Location"响应 header 的首选方法是什么?

iphone - 来自 "stringWithFormat:"的意外结果

ios - 如何创建对象并在Objective-C中使用它?

spring - 请求未在使用嵌入式 tomcat 的 spring boot 中映射

ios - 即使在 mergeChangesFromContextDidSaveNotification 之后停止 CoreData 缓存结果

objective-c - ios sdk - 检查新创建的 nsmanagementobject 属性的真实类型(具有 nsnull 类型的值)

ios - 如何在核心数据中找到属性的索引

ios - ObjC 对象内存分析/解析 iOS 128kB 限制