【发布时间】:2014-02-25 06:27:29
【问题描述】:
我正在开发一个从 Web 获取数据并将其显示给用户的应用程序。假设数据是一家餐馆的评论,一个评论显示在一个视图上。用户可以向左或向右滑动以进入上一个/下一个评论。数据是异步获取的(每个评论一个线程)。
这是问题陈述 - 假设已获取 5 条评论,并且用户当前正在查看第 3 条评论。现在,获取了第 6 条评论,我想将其作为第 4 条评论显示给用户(因为第 6 条评论的发布日期比第 5 条评论更近)。我的模型类应该如何通知视图控制器?
我已经考虑了一些选项 -
- 向视图控制器提供一个数组,然后发送 NSNotifications 关于要插入到数组之间特定索引处的新项目
- 使用 NSFetchedResultsController(这有点棘手,因为我没有将它与表视图控制器一起使用)
- 视图控制器总是要求显示下一条评论(来自模型)并且没有一系列评论
在这种情况下是否采用了任何既定的设计模式?欢迎提出除上述 3 项以外的其他建议!
【问题讨论】:
-
这不是一个很好的问题描述来询问设计模式。您可以应用已知的 MVC 变体和“延迟加载表视图”,以及异步编程的常见做法。您声明的要求也不清楚:“现在,第 6 条评论已获取,我想将其作为第 4 条评论显示给用户。我的模型类应如何通知视图控制器?” 嗯? “我”是谁?从字面上看,如果您希望将第 6 条评论放在位置 4,那么只需将其插入到该位置的数组中,然后“更新”表格视图。不过,我不认为你有这个想法,不是吗?
-
我就是我自己,开发者。我已经明确提到过,我不是显示表格视图,而是显示一个用户可以向右或向左滑动以查看下一个项目的视图(类似于照片应用程序)。
标签: ios design-patterns asynchronous nsnotifications nsfetchedresultscontroller