1

我需要调用一个“函数”来进行一些网络请求和数据处理,这可能需要一些时间。

因此,几乎在我的应用程序启动后,我就会调用我的函数,以便在用户到达需要的屏幕时准备好响应。

您将在哪里/如何触发网络请求,以及您将如何通知最终的演示者您得到了响应或没有响应?

4

1 回答 1

0

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

  • 网络请求和异步响应将在 VIPER 的交互器区域中,因为这是所有传感器、数据库和网络操作所在的位置,其中当然包括从数据包或格式化字节流中提取的所有字段(这可能是一小部分在 OP 中可能被称为“数据处理”)。
  • 检索到的数据及其结构将在 VIPER 的实体区域中。
  • OP中“数据处理”主要部分的“业务逻辑”将在VIPER的presenter zone,在实体区的上述实体上运行。

似乎某些刺激存在于某处(例如,在 VIPER 的视图区域中的 UI 中)以触发最终成为交互器区域中的网络请求的操作。如果该刺激源于 UI,那么自然会有 VIPER 区域间的同步消息流从视图到演示者再到交互者,从而启动异步网络请求。异步(以及有关传出和传入网络流量的所有其他内容)将在交互区域的内部事务内处理。

这个答案首先提到了 VIPER,但没有故意提到 Swift 或 iOS,因为 VIPER 架构区域和它们之间的消息传递应该不知道这个应用程序的构建是针对哪个平台的。

  1. iOS 应用程序将在构建时交换以 iOS/SwiftUI 为中心的视图区域。MacOS 应用程序将在构建时交换以 Cocoa/SwiftUI 为中心的视图区域。Android 应用程序将在构建时交换 JNIing-to-Kotlin/Java 视图区域。UWP 应用将在生成时交换 C++/WinRT 或 C#/WinRT 视图区域。
  2. 同样,iOS 或 MacOS 应用程序将在构建时交换以 WebKit 框架为中心的交互器区域。Android 应用程序将在构建时交换以 WebView 为中心的交互器区域。UWP 应用程序将在构建时交换以 Windows.Web.Http 为中心的交互器区域。
于 2021-04-03T00:35:34.170 回答