SwiftUI)ObservableObject

2023. 9. 3. 10:41· SwiftUI🐧
목차
  1. ObservableObject
  2. @Published
  3.  
  4. objectWillChange

ObservableObject

이름에서 알 수 있듯이 ObservableObject를 채택한 객체는 관찰을 하는 객체가 되게 됩니다.

그래서 위에 정의처럼 객체가 변경되기전에 신호를 보내는(emit) publisher를 가지고 객체라고 설명하는 것입니다.

 

@Published

해당 프로퍼티가 랩퍼가 표시된 속성의 변경사항을 관찰하고 있다가 변경 시에 그 속성에 의존하는 모든 view가 로드되어 변경 사항을 반영합니다.

class MyModel: ObservableObject {
    @Published var count = 0//해당 속성이 변경되었을때 이 속성의 변경 사항을 발행!func incrementCount() {

        count += 1//변경 사항을 관찰하고 있는 속성을 변경을하는 지점
    }
}

 

objectWillChange

objcetWillChange publisher 같은 경우는 @published 래퍼로 감싸진 속성이 변경되기 직전에 원하는 명령을 방출(emit)하는 publisher이다.

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")
//john의 속성 age가 변경되기 직전에 objectWillChange를 통해 변경 직전에 반응할 수 있음
}
print(john.haveBirthday())
// Prints "24 will change"// Prints "25"

'SwiftUI🐧' 카테고리의 다른 글

SwiftUI) @Environment  (0) 2023.11.29
  1. ObservableObject
  2. @Published
  3.  
  4. objectWillChange
'SwiftUI🐧' 카테고리의 다른 글
  • SwiftUI) @Environment
성실농장주
성실농장주
매일 조금이라도 꾸준히 성장하고 싶은 개발자
성실농장주
사과농장
성실농장주
전체
오늘
어제
  • 분류 전체보기 (43)
    • iOS 개발공부📱 (4)
    • Swift🐤 (12)
    • SwiftUI🐧 (2)
    • Firebase 🔥 (1)
    • Git 🐈 (2)
    • Linux (1)
    • Trouble Shooting🛠️ (2)
    • 자료구조🏛️ (1)
    • visionOS 개발공부👓 (1)
    • Algorithm💡 (4)
    • RxSwift (5)
    • 오픈소스 (1)
    • ios 개발자 면접 질문🥸 (6)
    • 영어문서 단어집📕 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • process_control_block
  • responder_chain
  • rethrows
  • process_states
  • git
  • CLLocationDegrees
  • iOS_process_management
  • Debug View Hierarchy
  • control_transfer_statement
  • Xcode
  • Set
  • Tuple
  • nested_function
  • colorScheme
  • processor_management
  • Array
  • optional_chaining
  • EnvironmentValues
  • RxSwift
  • SWIFT

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
성실농장주
SwiftUI)ObservableObject
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.