iOS:用于填充异步提取数据的设计模式

Aks*_*hay 7 design-patterns asynchronous nsnotifications nsfetchedresultscontroller ios

我正在开发一个从Web获取数据并将其显示给用户的应用程序.假设数据是餐馆的评论,并且在一个视图上显示一个评论.用户可以向左或向右滑动以转到上一个/下一个评论.异步提取数据(每个审阅一个线程).

这是问题陈述 - 假设已经提取了5条评论,并且用户正在查看当前的第3条评论.现在,提取第6次审核,我想将其显示为用户的第4次审核(因为第6次审核的发布日期比第5次审核更新).我的模型类应该如何通知视图控制器?

我考虑过一些选择 -

  1. 向视图控制器提供一个数组,然后发送有关要在特定索引处插入数组之间的新项目的NSNotifications
  2. 使用NSFetchedResultsController(这有点棘手,因为我没有使用它与表视图控制器)
  3. 视图控制器始终要求显示下一个评论(来自模型),并且没有一系列评论

在这种情况下是否有任何已建立的设计模式?除上述3之外的其他建议值得欢迎!

Joh*_*pia 7

只需使用一个NSFetchedResultsController.使用NSIndexPaths时只需忽略section.它基本上是一个美化NSArray的免费通知.

以下是我认为我会这样做的方式:

  • 请确保NSFetchRequestNSFetchedResultsController是通过发布日期排序.
  • 处理NSFetchedResultsControllerDelegate方法.
  • NSFetchedResultsController更新,保存当前对象,重新装入集合视图,然后滚动到保存的对象,没有任何动画.这对用户来说似乎没有发生在当前页面上.