PageViewController:使用Core Data时确定“next”和“previous”

时间:2015-08-12 08:24:35

标签: ios core-data

我正在转换一个应用程序,以使用以前只是内存中对象的Core Data。这个应用程序从远程API中获取数据,之前在内存中创建了具有递增ID的对象,我根据这个递增ID是变大还是变小,找出用户导航的方向(翻页)。并基于填充的子视图控制器(给予PageViewController)和正确的信息。对象选择逻辑位于didFinishAnimating pageViewController委托方法中,因为每次页面转换只调用一次。

现在我将一些对象存储在Core Data中,我需要知道“next”和“previous”是什么,以便正确设置下一个和前一个视图控制器被馈送到PageViewControllers。和以前一样,我从远程API获取,但现在根据从API检索的数据创建Core Data托管对象。

我可以在Core Data中创建自己的递增计数器字段,但我想知道是否有更好的方法可以做到这一点?我不想像RDBMS那样使用Core Data。

更一般地说 - 人们如何使用Core Data为动态对象集合提供可能没有“最后一页”的PageViewController应用程序?

注意:这个项目是用Swift编写的。

2 个答案:

答案 0 :(得分:1)

事实证明,我所说的API(MediaWiki类别枚举)可以以时间戳的方式返回结果 - 我可以使用这些时间戳来确定我要去的方向。所以从中得到的教训是:

  • 查看远程API有哪些功能来确定结果排序;在这种情况下,按时间顺序排列适合账单。
  • 如果结果是真正无序的并来自远程源,那么您将必须应用某种本地排序,以便分页可以预测。

答案 1 :(得分:0)

将结果存储在数组中。将数组(以及要显示的对象)从一个视图控制器传递到下一个(依赖注入)。视图控制器可以向数组询问对象所处的索引,并从那里进行调整。