2014-12-03 4 views
2

두 컨텍스트 인 parentContext와 childContext가 있습니다. childContext에서 parentContext로 objectID를 전달하려고하면 parentContext에서 to - many 관계에 대해 오류가 발생하지 않습니다.컨텍스트간에 objectID를 전달할 때 to many many fault가 발생하지 않습니다.

대다 관계는 "카테고리"라고하며 순서가 지정되지 않습니다 (NSSet).

NSManagedObjectContext *parentContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; 
NSManagedObjectContext *childContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; 
childContext.parentContext = parentContext; 
childContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy; 

NSSet *childObjects = [childContext registeredObjects]; 

[childContext save:NULL]; 

[parentContext performBlockAndWait:^{ 
    for (NSManagedObject *childObject in childObjects) { 
     NSManagedObject *parentObject = [parentContext objectWithID:childObject.objectID]; 
     // [parentObject hasFaultForRelationshipNamed:@"categories"]; returns false 
     // [childObject hasFaultForRelationshipNamed:@"categories"]; // returns true as expected 
     [parentContext refreshObject:parentObject mergeChanges:YES]; 
    } 
}]; 

"categories"관계가 parentContext에서도 오류가 발생하기를 원합니다. 좀 도와 줄 수있어?

+0

관계에 액세스하려고 시도 했습니까? 해결하려는 문제가 무엇인지 분명하지 않습니다. – Mundi

+0

예, parentObject의 관계에 액세스하려고하면 예상대로 오류가 트리거되지 않습니다. – pshah

+0

새로 고침하면 어떨까요? 해결하려는 문제가 아직 명확하지 않습니다. – Mundi

답변

0

부모 컨텍스트도 저장해야한다고 가정합니다. 하위 컨텍스트 저장은 변경 내용을 상위 컨텍스트로 "푸시"하지만이 시점에서는 변경 내용을 저장소에 저장하지 않습니다.

일단 부모 컨텍스트가 저장되면 오류가 발생합니다.

+0

행운이 없습니다. 벌써 해봤 어. – pshah