Swift如何声明一个遵循ObservableObject协议的任何一个类类型的变量
在Swift中,可以使用@ObservedObject或@StateObject属性包装器来声明遵循ObservableObject协议的任何一个类类型的变量。
@ObservedObject属性包装器用于在视图中使用遵循ObservableObject协议的类实例。它会自动监视对象的状态变化,并在变化时更新视图。
例如,假设有一个遵循ObservableObject协议的类Person:
class Person: ObservableObject {
@Published var name: String = ""
@Published var age: Int = 0
}
然后,在视图中声明一个遵循ObservableObject协议的Person实例变量:
struct ContentView: View {
@ObservedObject var person = Person()
var body: some View {
// 使用person变量进行视图布局和操作
}
}
@StateObject属性包装器用于在声明周期较长的地方使用遵循ObservableObject协议的类实例,比如在一个父视图中,以便在子视图之间共享该实例。
struct ContentView: View {
@StateObject var person = Person()
var body: some View {
// 使用person变量进行视图布局和操作
}
}
这些属性包装器都可以确保视图在对象发生变化时及时更新,以便正确显示最新的数据
原文地址: https://www.cveoy.top/t/topic/h4Mc 著作权归作者所有。请勿转载和采集!