7

한 관측기를 여러 개의 tableview 컨트롤러에 동적으로 등록하므로 이전 관측기를 동일한 객체에 등록한 경우이를 제거해야합니다. 이렇게하려면 개체에 관찰자가 있는지 확인해야합니다.KVO - 등록 된 관측기의 목록을 얻는 방법

이것이 가능합니까? NSNotification을 사용하면 NSNotification 센터 싱글 톤을 사용할 수 있지만 KVO는이 점을 알고 있습니까?

답변

2

아니요, 알고있는 간단한 방법이 없습니다. KVO와 NSNotification은 그 점에서 다릅니다. 기능이 필요한 경우 KVO 대신 NSNotification을 사용하여 솔루션을 구현하지 않는 이유는 무엇입니까?

+0

테이블 뷰에 바인딩하여 항목이있는 경우이를 감지합니다. 수동으로 알림 이벤트를 보낼 수 있다고 생각합니다. 데이터 공급자를 처리하는 수퍼 클래스가 있습니다. KVO는 이상적입니다. 나는 다른 방법으로 그것을 할 수 있었다. 신속한 대응에 감사드립니다. –

15

나는 같은 개체에 등록 된 옵저버를 어떻게 제거 할 수 있습니까?

하지만 아래의 방법을 사용하면 솔루션을 찾기 위해 조금 앞서 나아갈 수 있다고 생각합니다.

observationInfo

는 수신기에 등록 된 모든 옵저버에 대한 정보를 식별하는 포인터를 돌려줍니다.

- (void *)observationInfo 

이 메서드의 기본 구현은 수신기의 포인터가 입력 한 전역 사전에서 정보를 검색합니다.