小编GRV*_*sad的帖子

使用 MVVM 在 SwiftUI 中显示警报

我正在尝试使用 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)

alert mvvm ios swift swiftui

5
推荐指数
2
解决办法
2543
查看次数

Retrofit 如何在幕后工作

关于 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(........)

提前致谢

android retrofit2

4
推荐指数
1
解决办法
681
查看次数

标签 统计

alert ×1

android ×1

ios ×1

mvvm ×1

retrofit2 ×1

swift ×1

swiftui ×1