SwiftUI 如何使用 @ObservedObject 管理外部对象的状态? 代码演示

11 min read

在SwiftUI中,@ObservedObject是用来观察外部对象状态的。以下是一个简单的代码演示:

首先,定义一个可观察对象:

class MyModel: ObservableObject {
    @Published var count = 0
}

然后,在视图中使用该对象:

struct ContentView: View {
    @ObservedObject var model = MyModel()
    
    var body: some View {
        VStack {
            Text("\(model.count)")
            Button("Increment") {
                self.model.count += 1
            }
        }
    }
}

在这个示例中,我们创建了一个名为MyModel的可观察对象,然后使用@ObservedObject装饰器在ContentView中定义了一个模型对象。随后,我们在按钮事件中增加了模型的计数器,并在Text视图中展示了当前计数器的值。此时,每一次model.count的值修改都会直接反映到UI界面中。

这样,我们就可以通过@ObservedObject来轻松地利用SwiftUI来管理外部对象状态了。