iOS-SOPT-iNNovation / iOS_Traning

18 stars 0 forks source link

<7주차> KVO 동작 방식에 대해 설명하시오. #34

Closed namsoo5 closed 3 years ago

namsoo5 commented 3 years ago

Key Value Observing

Objective-C 런타임에 의존, NSObject를 상속받는 클래스에서 사용가능 다른 객체들이 그 객체의 속성이 변경된것을 알 수 있다 @objc dynamic 선언이 필수

keyPath를 이용해서 원하는 속성에 옵저버를 등록하고 설정된 객체의 속성이 변경됬다면 등록된 옵저버 등록된 클로저가 실행

iJoom commented 3 years ago

Key Value Observing 변수에 코드를 설정해서 변수가 변경 될 때마다 코드가 실행되도록 하는 것 (willSet, didSet과 기능은 유사) 하지만 KVO는 옵저버를 등록해서 사용가능

KVO는 Objective C 방식 / NSObject를 상속받고 @objc dynamic으로 변수 선언시 정의해줘야함 + 옵저버 선언 후 클로저 문법으로 셋팅 가능!

dongminyoon commented 3 years ago

KVO(Key-Value-Observing) 어떤 키의 값의 변화를 인식해서 이에 맞게 동작하기 위한 방식입니다. Objective-C를 위한 기능인데, 사용하지 위해 중요한 것은 Key Path의 개념이다. 어떤 값을 위한 Path를 정의하고 그 값이 변했을 때의 행동을 지정해서 작동하게 한다. Objective-C의 개념이기 때문에 @objc를 꼭 붙여주어야한다. 그렇게 해야 objective-c 런타임에 동작하게 할 수 있다.