ObservableObject
-
StateObjectSwiftUI 2023. 1. 28. 14:01
ObservableObject를 인스턴스화 하는 프로퍼티 래퍼 SwiftUI 는 각 객체가 생성될 때 한 번만 새로운 객체를 생성하고, ObservableObject 의 @Published 프로퍼티가 바뀔 때 관련 뷰를 업데이트 합니다. 아래와 같이 사용할 수 있습니다. class Book: ObservableObject { @Published var title = "Great Expectations" } struct BookView: View { @StateObject var book: Book var body: some View { Text(book.title) } } state object를 ObservedObject attribute 를 갖는 프로퍼티로 넘길 수도 있지만, environmentOb..
-
ObservableObjectSwiftUI 2023. 1. 28. 12:44
객체가 변경되기 전에 방출하는 퍼블리셔를 갖는 객체 타입 ObservableObject 는 objectWillChange 퍼블리셔와 동기화되어 있습니다. 이 objectWillChange 퍼블리셔는 @Published 프로퍼티가 변경되기 전에 값을 방출합니다. class Contact: ObservableObject { @Published var name: String @Published var age: Int init(name: String, age: Int) { self.name = name self.age = age } func haveBirthday() -> Int { age += 1 return age } } let john = Contact(name: "John Appleseed", age: ..