@Published property wrapper
Combine을 사용하는 가장 쉬운 방법 중 하나로, ObservableObject 프로토콜에 부합하는 클래스에서 사용될 때 자동으로 데이터 게시를 처리함.
class ViewModel: ObservableObject {
@Published var data = "some data..."
}
struct PublishedView: View {
@StateObject var vm = ViewModel()
}
- ObservableObject를 준수하는 클래스 내에서 @Published 속성 래퍼를 사용하고,
- @Published 속성은 변경되는 사항을 등록한 모든 View에 알림.
- View는 @StateObject 프로퍼티 래퍼를 사용해 이 ObservableObject와 연결될 수 있음.
ObservableObject
- @Published 속성값이 변경됨을 View에 알림
@Published
@StateObject
- 구독자
- 변경사항 수신
- 그 후 View내부에서 @Published 속성을 사용하는 위치를 찾아, 다음 업데이트 된 값을 표시하도록 관련된 뷰를 다시 그림