HypeDitto / iOS-Study

iOS 기술 면접 대비
0 stars 0 forks source link

KVO 동작 방식에 대해 설명하시오. #58

Open HeegeePark opened 1 year ago

HeegeePark commented 1 year ago

Key Value Observing

동작 방식

모델 객체의 어떤 값이 변경되었을 경우 이를 UI에 반영하기 위해서 컨트롤러는 모델 객체에 Observing을 도입하여 델리게이트에 특정 메시지를 보내 처리할 수 있도록 하는 것

즉, 변수에 코드를 붙여 변수가 변경될 때마다 코드가 실행되도록 하는 방법을 의미한다. property observers(willset , didSet)과 아주 유사한데 KVO는 타입 정의 밖에서 observe를 추가한다는 점이 다르다.

단점

YouHojoon commented 1 year ago

class MyObserver: NSObject { @objc var objectToObserve: MyObjectToObserve var observation: NSKeyValueObservation?

init(object: MyObjectToObserve) {
    objectToObserve = object
    super.init()

    observation = observe(
        \.objectToObserve.myDate,
        options: [.old, .new]
    ) { object, change in
        print("myDate changed from: \(change.oldValue!), updated to: \(change.newValue!)")
    }
}

}

HeegeePark commented 1 year ago
image