ObservableObject
를 통해 View와 View Model을 바인딩하는 방법에 관한 설명이다.
프로토콜 ObservableObject
를 클래스에 채택하면 해당 클래스의 인스턴스를 관찰하고 있다가 값이 변경되면 뷰를 업데이트한다.
@Published
로 선언된 프로퍼티가 ObservableObject
에 포함되어 있다면 해당 프로퍼티가 업데이트 될 때마다 뷰도 업데이트 된다.
ObservableObject
를 구독하고 값이 업데이트 될 때 마다 뷰를 갱신한다.
class ObservableList: ObservableObject {
@Published var list: [String] = []
}
struct ContentView: View {
@ObservedObject var list = ObservableList()
var body: some View {
List(list.list, id: \.self) { item in
Text(item)
}
}
}