코어 데이터 객체에 링크 된 NSArrayController를 자동 재정렬 컨텐츠로 설정하고 술어로 필터링했습니다. 관계를 무효화하고 다른 관계를 지정하기 전까지는 모든 것이 잘됩니다. 그 시점에서, 내 응용 프로그램 충돌 나는 다음과 같은 오류가 나타납니다 얼씬에서KVO 문제 "관찰자를 제거 할 수 없습니다"
Cannot remove an observer for the key path "career.type" from Object, most likely because the value for the key "career" has changed without an appropriate KVO notification being sent. Check the KVO-compliance of the Person class.
를, 그것을 가지고 내 NSArrayController 자동 정렬 할 내용 원인이 문제를 설정하는 것이 나타납니다. 하지만 NSArrayController 수동으로 재정렬하는 데 의존하지 않고이 문제를 해결하기 위해 노력하고있어. 다음은 오류를 유발있어 의사 코드는 다음과 같습니다
object.career = nil;
object.field = (Field *)item;
은 여기 내 NSArrayController가 사용하는 조건입니다 : 두 경우 모두에 대한
(career != NIL && career == %@) || (field != NIL && field == %@)
퍼센트 @는 CoreData 개체입니다.
기본적으로 NSArrayController에 object.career.type에 설정된 관찰자가있는 것처럼 보입니다. 관계를 무효화하면 해당 관찰자가 자동으로 제거 될 때 문제가 발생합니다. 그래서 나는 이것이 잘못된 방향으로 가고 있는지 궁금해하고 있습니까? 개체 사본을 가져와야하며 MOC에서 삭제하고 경력을 nil로 설정하고 필드를 적절하게 설정해야합니다.
관찰자에게 형식이 무효화되었음을 올바르게 알리는 방법은 무엇입니까? 여기에 언급 된 모든 속성과 관계는 바닐라 KVO 호환 게터/세터를 사용합니다.