1

我确实有几个问题。使用交互器的最佳方法是什么:

假设在交互器中我保存了一些数据,但我想检查这些数据并显示下一个警报:

self.presenter?.showAlert(with: "All fields are required for adding exercise.".localized)

第一个问题是这违反了毒蛇?在将数据传递给拦截器之前,我是否需要检查演示者中的数据?

另一个问题:我需要使用函数showAlertFillIssue而不是传递文本吗?

甚至可以说presenter如果违反interactor.

4

2 回答 2

1

https://TheSwiftDev.com/the-ultimate-viper-architecture-tutorial中所述,

  • 交互器区仅用于从传感器、数据库或网络协议中获取实体,或用于将实体发射到数据库或网络协议中。
  • 相反,演示者区域用于执行所有业务规则/逻辑。偶尔会有灰色阴影(如下所述),但一般规则是,并非所有字段都被正确填写的检测将在 Presenter 中脱离数据库概念并脱离 UI 概念。
  • 最好将 showAlert 视为完全在视图区域中的东西,因为根据操作系统的不同,它可能是一个操作系统上的警报,但另一个操作系统上的一些非警报 UI 构造。最好将 VIPER 视为:此操作在所有其他操作系统(除了 iOS)上会是什么样子,例如至少 MacOS 以及 Android 和 UWP(或隔离在视图区域中的其他 UI 基础设施,例如 Qt)。最好将 showAlert 改写为 emitError 或 balkBack ,而不用提及这个操作系统上的实际 UI 构造是什么。同样,showAlertFillIssue 和任何其他特定 UI 操作最好完全隔离在远离演示者(业务规则)和交互者(实体获取和存储)的视图区域内。
于 2021-04-07T19:33:30.093 回答
0

您好 Viper Architechture,交互器包含业务逻辑。因此,在验证您的数据时。您可以调用演示者的方法来显示错误消息。您可以定义一个枚举来处理错误并将其传递给 showAlert 方法。

self.presenter?.showAlert(with: FormError.AllFieldRequired)
于 2019-02-25T02:44:10.647 回答