본문 바로가기
Programming/iPhone

key-value observing

by 유주원 2012. 12. 24.

MVC 모델에서 Model의 값이 변경되었을 때 변경된 정보를 View에 반영하기 위해서 Controller는 Model의 변경된 값을 알아야 할 필요가 있다. 

Cocoa에서는 notification 혹은 delegate를 사용하여 이를 전달할 수 있도록 구성되어 있다. 하지만 이를 위해서 notification이나 delegate 함수를 매번 써주어야 하는 불편함이 있다.

key-value observing이란 프레임 워크 수준에서 값에 대한 변경 사항을 추적해 주도록 하는 역할을 하는 매커니즘을 말한다. 어떠한 객체에 대한 키를 등록하면 이 키 값이 변경될 때 자동으로 옵저버에게 통보가 된다.

인스턴스 변수에 대해서도 마찬가지로 key-value observing 매커니즘을 적용시킬 수가 있다.

[self willChangeValueForKey: @"test"];

_test = 3;

[self didChangeValueForKey:@"test"];


위와 같은 변경을 통해 key-value observing 매커니즘이 해당 함수에 통지를 발송하게 된다.