시나리오 :에 걸쳐 컨텍스트
내가 자신의 컨텍스트 (동일한 스레드) 2 개 viewControllers 각각 처리하고 있습니다. managedObject의 objectID를 MOC2 -> MOC1에서 delegate 메소드를 통해 전달하려고합니다. 좋아, 그거야, 이 인 것처럼 보입니다.
여기에 문제가 있습니다 ... MOC1 (대리자)에서 [self.localMOC objectWithID:thePassedID]
을 통해 새 개체에 대한 포인터를 얻습니다. 발견 된 개체에서 NSLog를 실행하면 로그에 설명 된 것처럼 보입니다. 이제 업데이트 된 가져온 결과 컨트롤러에서 찾을 때 해당 결과 컨트롤러를 사용하는 테이블보기에서 개체를 보여도 찾을 수 없습니다. 여기
로그 문은 ...
objectWithID를 통해 개체를 : <Account: 0x6b11f90> (entity: Account; id: 0x6db44b0 <x-coredata:///Account/t5F84827D-E710-4331-A462-FCA1A0D335102> ; data: <fault>)
결과 컨트롤러 개체 :뿐만 아니라, 하나는 permanentID이고, 다른 하나는 temporaryID 같이 <Account: 0x6b1fc50> (entity: Account; id: 0x6b50250 <x-coredata://84B6642A-9C80-451F-BED4-52952EDFC43C/Account/p9> ; data: <fault>)
보인다 완전히 다른 메모리 주소.
제가 잘못하고있는 것에 대한 단서가 있습니까? 다음은
는 흐름이다 :
글쎄, 새로운 관리 객체 (또는 그 형태)가 테이블 뷰와 페치 결과 컨트롤러에 나타나지 않기 때문에 MOC 1이 업데이트된다는 것을 알고 있습니다. 또한 ObjectID를 전달하기 위해 대리자 메서드를 사용해야합니다. – Gobot
아마도 업데이트되고 _updating_입니까? 두 개의 별도 컨텍스트가 있고 변경하는 경우 어떻게 든 데이터를 동기화해야합니다. 현재 어떻게하고 있습니까? – jrturton
NSManagedObject의 Reset 메서드를 통해. 나는 ObjectID가 각각의 관리 대상 객체에 특정한 것이라고 생각했고, 주로 그 객체에 대한 참조를 얻는데 사용되었다. "ID"값이 없으면 어떻게 그 객체를 검색 할 수 있습니까? 저를 혼란스럽게하는 것은 객체가 문맥에서 발견된다고 주장하는 것입니다. – Gobot