2010-01-09 5 views
1

동일한 NSPersistentStoreCoordinator를 참조하는 두 개의 서로 다른 NSManagedObjectContext가 있습니다 (예 : context1 및 context2).다른 NSManagedObjectContext (동일한 NSPersistentStoreCoordinator 참조)에서 NSManagedObject 가져 오기

나는 컨텍스트 1에서 NSManagedObject를가집니다. 이후에 저장할지 여부를 모르는 상태에서 편집하고 싶기 때문에 context2에서 해당 객체를 가져오고 싶습니다. Context2 그냥 NSManagedObject 저장하지 않으려는 경우 휴지통 수 있습니다. 저장의 경우 context1에서 context2를 병합합니다.

하지만 어떻게 context2에서 객체를 가져 옵니까? 이 작업을 수행하는 쉬운 방법이 있습니까? 또는 술어 xyz = [NSManagedObject objectId]를 사용하여 개체를 요청해야합니까? 그리고 그 경우에 xyz는 무엇이되어야합니까?

답변

0

대상 NSManagedObjectContext를 지정할 수 있습니다, 당신의 의견에 즉

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyEntity" inManagedObjectContext:managedObjectContext]; 
    [request setEntity:entity]; 
    myArray = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; 

추가 :

context2object = [myEntityArrayFromContext2 objectAtIndex:[myEntityArrayFromContext1 indexOfObject:context1object]]; 
+0

오른쪽. 그것이 내가 컨텍스트 1에서 관리 객체를 얻으려고 한 것입니다. 그러나 이제는 사용자가 해당 개체를 편집하기로 결정합니다. 그것이 내가 context2에서 같은 대상을 필요로하는 이유입니다. 어떻게 알 수 있을까요? objectID를 통해? – Shingoo

+0

through entityForName : –

+0

나는 당신이 내가 의미하는 것을 알았는지 의아하지 않다.) 위의 코드를 사용하여 모든 객체를 얻었습니다. "MyEntity"유형의 5 개 개체 배열을 반환했습니다. 지금까지 지우기. 이제 예를 들어 그 배열 밖으로 세 번째 요소를 가져옵니다. 이 요소는 물론 "MyEntity"클래스의 Object입니다. 이제 내 질문에 obove : 클래스 유형 "MyEntity"의 세 번째 Object를 컨텍스트 2에서 어떻게 가져 옵니까? 또는 더 일반적인 : 기존 NSManagedObject를 다른 컨텍스트에 어떻게 연결합니까? – Shingoo

관련 문제