2011-01-03 4 views
1

특정 유형의 엔티티가 추가/변경/제거 될 때마다 통지하고 싶습니다. 나는 이것이 관찰자를 managedObjectContext에 추가함으로써 가능하다는 것을 알고있다.하지만 그 타입의 객체를 포함하고 있는지를보기 위해 리턴 된 3 개의 세트를 검색해야한다. filteredSetUsingPredicate을 사용할 수는 있지만 변경이있을 때마다 O (n) 작업을 세 번 수행하는 것은 비효율적 인 것으로 보입니다. 이것을 달성하는 또 다른 효율적인 방법이 있습니까?핵심 데이터 : 특정 유형의 엔티티에 대한 모든 변경 사항을 관찰하십시오.

+0

엔티티와 관리 대상을 혼동하지 마십시오. 엔티티는 클래스와 유사한 추상화이며 컨텍스트에 추가되거나 제거되지 않습니다. 관리 객체는 엔티티를 나타내는 구체적인 인스턴스이며 컨텍스트에서 삽입, 업데이트 및 삭제됩니다. – TechZen

답변

5

비효율적입니까? 어떤 테스트와 관찰을 기반으로합니까? NSArrayController가 어떻게 작동한다고 생각하십니까? (힌트 - 코코아 바인딩에 대해 읽어보십시오.) :-) 물론 SQLite 저장소 유형을 사용하면 인출을위한 데이터베이스 필터링을 얻을 수 있지만 객체에 대한 메모리 내 변경 사항은 무엇입니까?

내가 자신의 입장에 있다면, 필자는 그것을 연결하고 내가 상상하는 성능 테스트는 실제 사용자가 만날 가능성이있는 합리적인 최악의 시나리오라고 생각합니다.

성능이 실제로 부족한 경우 데이터 모델, 특정 엔터티의 모든 인스턴스에 대한 모든 변경 사항을 관찰해야하는 이유 및 성능 싱크가 발생했다는 정보가있는 곳에서 별도의 질문을 게시하는 것이 가장 좋습니다.

관련 문제