-
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: 24) cancellable = john.objectWillChange .sink { _ in print("\(john.age) will change") } print(john.haveBirthday()) // Prints "24 will change" // Prints "25"
위 예에서 haveBirthday() 함수를 통해 @Published 변수인 age의 값을 증가시켰습니다.
이에 따라 age의 값이 바뀌기 전에 먼저 objectWillChange 퍼블리셔의 이벤트가 방출된 것을 확인할 수 있습니다.참고
https://developer.apple.com/documentation/combine/observableobject
'SwiftUI' 카테고리의 다른 글
[SwiftUI] HStack 하위 요소 > 최대 높이로 동일하게 맞추기 (0) 2023.05.22 task(priority:_:) (0) 2023.01.28 StateObject (0) 2023.01.28 ObservedObject (0) 2023.01.28 [SwiftUI] Model data 앱 데이터 관리하기 (0) 2022.11.25