2011-05-10 4 views
0

나는 문서 기반 응용 프로그램에서 작업하고 있습니다.사라지는 NSManagedObjects

저장된 파일을 열 때 NSManagedObjectContext를보기 컨트롤러에로드합니다. 이 뷰 컨트롤러는 특정 유형의 모든 객체에서 속성 "깊이"를 변경하여 관찰해야합니다. 뷰 컨트롤러가 컨텍스트를 가져 오면 모든 개체를 가져 와서 각 개체의 옵서버로 추가하고 추적하여 배열에 보관합니다.

코어 데이터가 ContextDidChange 알림을 보낼 때마다 생성 된 개체를 관찰 한 후이 배열에 개체를 추가합니다. 삭제 된 객체의 경우 뷰 컨트롤러를 뷰어로 제거하고 배열에서 제거합니다.

이 기능은 문서를 닫은 다음 다시 열 때까지 효과적입니다. 이 경우 모든 객체가이 배열에 추가됩니다. 관측은 잘 작동합니다. 그러나, 두 번째 첫 번째 "NSManagedObjectContextObjectsDidChangeNotification"들어오는, 내 NSManagedObjects 모든 어떻게 든 배열 내가 더 이상 있습니다. 삭제시, 관찰자가 아닌 관찰자를 제거 할 수 없다는 충돌이 발생합니다.

매우 이상합니다.

NSManagedObjets가 갑자기 사라진 이유는 무엇입니까? 나는 배열을 공개하지 않거나 전혀 재미있는 사업을하지 않습니다.

답변

0

문서를 닫았다가 다시 열면 새로운보기 컨트롤러 개체가 나타납니다. 원래 뷰 컨트롤러 주위에 아직도 여전히 관찰처럼
그러나, 그것은 소리 :

NSManagedObjectContextObjectsDidChangeNotification. 

확인 당신이보기 컨트롤러는 통지 관찰자로 자신을 제거하고 있다는 문서를 닫을 때 있는지 확인합니다.