我正在尝试使用 SwiftUI 和 MVVM 架构构建一个应用程序。我想让我的视图在它的 ViewModel 认为有必要的时候显示一个警报——比如,当它有一个来自模型的新结果时。因此,假设每当 VM 检测到新结果时,它会status相应地设置:
视图模型:
enum Status {
case idle
case computing
case newResultAvailable
}
class MyViewModel: ObservableObject {
@Published var status = Status.idle
...
}
Run Code Online (Sandbox Code Playgroud)
风景:
struct ContentView: View {
@ObservedObject var vm = MyViewModel()
@State private var announcingResult = false {
didSet {
// reset VM status when alert is dismissed
if announcingResult == false {
vm.status = .idle
}
}
}
var body: some View {
Text("Hello")
.alert(isPresented: $announcingResult) { …Run Code Online (Sandbox Code Playgroud) 关于 Retrofit2 的问题:
构建 Retrofit 实例后,然后调用接口(客户端)方法之一来“发送请求”
例如,如果您有这样的界面:
@POST("webhook.php")
Call<String> queueCustomer(@Body String queue);
Run Code Online (Sandbox Code Playgroud)
以及使用 create 方法创建的“client”的 Retrofit 实例,然后像这样调用它:
client.queueCustomer(someString)
Run Code Online (Sandbox Code Playgroud)
我假设这实际上是在发出网络请求。但是,您获取从此返回的 Call 对象并调用如下内容:
callObject.enqueue(........)
Run Code Online (Sandbox Code Playgroud)
当您调用 enqueue 时,您是否在进行后续网络请求?这是两个网络请求还是第一部分:client.queueCustomer(someString)只是构造将通过发送的对象callObject.enqueue(........)?
提前致谢