객체가 변화할때 그에 맞게 view를 변화 시켜주고자할 때 사용하는 어트리뷰트이다. 서브뷰에서 주로 사용한다.
class DataModel: ObservableObject {
@Published var name = "Some Name"
@Published var isEnabled = false
}
struct MyView: View {
@StateObject private var model = DataModel()
var body: some View {
Text(model.name)
MySubView(model: model)
}
}
struct MySubView: View { // subview
@ObservedObject var model: DataModel
var body: some View {
Toggle("Enabled", isOn: $model.isEnabled)
}
}
https://developer.apple.com/documentation/swiftui/observedobject