【问题标题】:RestKit with CoreData and pagination带有 CoreData 和分页的 RestKit
【发布时间】:2015-11-19 02:03:47
【问题描述】:

我有简单的分页方案

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] 

然后page ask什么都没变,所以用户不明白分页是工作吗?

要修复它,我使用 FetchRequestBlock 然后 page=1 我删除所有用户 - 这是一个糟糕的解决方案。

如何更正来自服务器的分页数据?

【问题讨论】:

    标签: ios rest core-data pagination restkit


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

    【讨论】:

      猜你喜欢
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多