所以,我目前正在将一个非常大的项目重构为 VIPER 架构,它的大部分模块视图都是 UITableViews。我发现了互联网上几乎所有关于 VIPER 和 UITableView 的话题,但有一件事仍然不清楚:我应该将 ViewModel 存储在哪里,我真的需要它们吗?
例如,我有一个带有 UITableViewController 的简单 VIPER 模块,我需要显示项目列表。Interactor 使用我解码为 Codable 结构的一些项目的数组来获取 JSON。然后我通过 InteractorOutput 协议将这些结构的数组从交互器推回演示器。现在我有两个问题:
我是否必须使用另一个数据模型 (ViewModel) 在视图中显示数据,还是可以使用现有的 Codable Struct?
我应该在哪里存储我的 ViewModel?在 Presenter 内部并从 View 中请求数据,如下所示:presenter.getData(forItemAt: indexPath.row)。或者我必须将 ViewModel 数组推送到 View 并要求 View 显示它们?