【发布时间】:2018-07-20 18:40:24
【问题描述】:
假设我们必须每 10 秒更新一次数据。 我们应该在哪里创建/存储计时器,它会在 VIPER 架构中的哪里触发相关方法? ViewController 应该这样做并通知演示者吗?还是 Presenter 应该持有计时器?
【问题讨论】:
标签: ios swift viper-architecture
假设我们必须每 10 秒更新一次数据。 我们应该在哪里创建/存储计时器,它会在 VIPER 架构中的哪里触发相关方法? ViewController 应该这样做并通知演示者吗?还是 Presenter 应该持有计时器?
【问题讨论】:
标签: ios swift viper-architecture
更新数据不是Presenter 或Controller 应该关心的事情。 Presenter(顾名思义)应该只控制演示和内容。在 VIPER 架构中,Interactor 负责处理逻辑,“每 10 秒更新一次”对我来说听起来像是一个逻辑。所以定时器应该是Interactor,一旦发生火灾,应该通知Presenter,然后Presenter相应地通知Controller。 (如果你认为这太过分了,那就是 VIPER)
【讨论】:
您可以在 Interactor 类中创建和存储计时器。
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 类将负责 VIPER 架构中的计时器。
【讨论】: