2011-03-29 5 views
0

두 개의 관리되는 개체 컨텍스트에서 작업하고 있습니다. 읽기 전용 프론트 엔드 컨텍스트 및 객체를 조작하는 데 사용되는 또 다른 백엔드 컨텍스트가 있습니다.CoreData - 전체 채우기 오류 후 관계를 추가 할 수 없습니다.

코드 블록에서 두 번째 어설 션이 실패합니다. 첫 번째 주장을 주석 처리하면 두 번째 문장이 괜찮을 것입니다. 그래서 저는 그것을 조금 좁혔습니다. productAccess 속성에 액세스 할 때 오류가 가득 채워지므로 (?), 프론트 엔드 컨텍스트에서 새 페치를 수행하더라도 추가 액세스 객체를 사용자에게 추가 할 수 없습니다.

- (void)testAddingAccesses{ 
    [self addAccessToUser]; 
    [self addAccessToUser]; 

    UserMO *newFront = [UserMO getUser]; 

    STAssertOperation([newFront.productAccesses count], 2u, ==, @"Should be two!!");  

    [self addAccessToUser]; 
    UserMO *another = [UserMO getUser]; 

    STAssertOperation([[another.productAccesses allObjects] count], 3u, ==, @"Should be three!!");  
} 

자세한 내용

[self addAccessToUser] 

는 유일 UserMO을 집어 들고, 다음 배경 컨텍스트를 저장 (백엔드 맥락에서)을 AccessMO을 추가합니다.

[UserMO getUser] 

프런트 엔드 컨텍스트에서 유일하고 유일한 사용자를 반환합니다.

프런트 엔드 제품에 처음 액세스하면 변경 사항이 반영되지 않는 이유는 무엇입니까?

답변

0

답변을 찾았습니다!

두 개의 컨텍스트를 사용하는 경우 가장 최근의 변경 내용을 저장하려면 개체를 새로 고쳐야합니다.

[frontendContext refreshObject:user mergeChanges:YES]; 
관련 문제