NSArrayController explained

배열 컨트롤러

배열 컨트롤러는 일련의 객체 집합을 다루는 바인딩 호환 객체이다. 여기서 ‘집합’은 주로 NSArray인데, 코어데이터 등에서는 NSSet을 쓰기도 한다. 배열 컨트롤러는 배열이 아니고 별도의 배열을 관리한다. 이는 배열을 자동으로 재정렬하거나, 선택된 객체들을 기억하거나 하는 배열 자체에 저장될 수 없는 몇 가지 메타 정보를 가지고 배열을 다루는 것을 도와준다.

배열 컨트롤러는 NSObjectController의 서브클래스로, 다음 메소드를 통해서 초기화할 수 있다.

- (instancetype)initWithContent:(id)content

다시 NSObjectController는 NSController의 자손인데, 이 컨트롤러는 객체의 편집 과정에 따른 이벤트를 발생시키는 기능을 갖고 있다.

  • -objectDidBeginEditing:
  • -objectDidEndEditing:
  • -commitEditing
  • -commitEditingWithDelegate:didCommitSelector:contextInfo:
  • -discardEditing
  • editing(property)

보통의 경우 배열 컨트롤러는 단독으로 쓰일일이 거의 없고, 코코아 바인딩에서 활용된다.