计时器在 Viper 架构中的什么位置

Where have timer be in Viper architecture

假设我们必须每 10 秒更新一次数据。 我们应该在哪里 create/store 计时器,它会在 VIPER 架构中的什么地方触发相关方法? ViewController 应该这样做并通知演示者吗?还是 Presenter 应该保持计时器?

更新数据不是 PresenterController 应该关心的事情。 Presenter(顾名思义)应该只控制演示和内容。在 VIPER 架构中,Interactor 负责处理逻辑,而 "Updating every 10 seconds" 听起来像是逻辑。所以计时器应该是 Interactor 并且在着火时,应该通知 Presenter,然后 Presenter 相应地通知 Controller。 (如果你认为这太多了,那就是 VIPER)

您可以在交互器中创建和存储计时器 class。

Michal Wojtysiak @ swifting.io 在这里写了一篇关于它的好文章:https://swifting.io/blog/2016/03/13/9-how-to-invalidate-nstimer-properly/?utm_source=swifting.io&utm_medium=web&utm_campaign=blog%20post

Interactor class 将负责 VIPER 架构中的计时器。