0

persistentStoreManagedObjectContext에서 객체를 가져오고 그 값 중 일부를 UIView 내에서 사용자에게 보여줍니다. 그 객체는 BookAuthor 관계가 있다고합시다. 내가 그 책을 전시하려고 할 때마다 나는 저자가 설정되어 있는지 확인한다. 이 설정되어 있지 않은 경우, 나는 수행영구 저장 장치에서 MappingResult firstObject 값을 가져와 "관계 설정 시도가 잘못되었습니다."오류가 발생하지 않도록하십시오.

성공 콜백 내에서
[[RKObjectManager sharedManager] getObjectsAtPath:[NSString stringWithFormat:@"/api/rest/userprofiles/%@/",_currentBook.authorID] parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {..} 

가, 내가하고 싶은 : 그러나

_currentBook.author = mappingResult.firstObject; 
if (![_currentBook.managedObjectContext saveToPersistentStore:&error]) { 
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
} 

를, 내가 얻을 수 있기 때문에 내가 _currentBook.author = mappingResult.firstObject;을 수행 할 수 없습니다

Illegal attempt to establish a relationship between objects in different contexts 

그러나 새로이 가져온 Author은 내 RestKit을 구성했기 때문에 persistentStoreCoordinator 내에 저장됩니다 (또는 기본적으로 기억이 안납니다). 그래서 나는 그 객체를 다시 만들고 싶지 않다. 단지 currentContext 내 값이 persistentStoreManagedObjectContext 인 것을 얻고 싶을 뿐이다. 그저 NSFetchedResultsController를 사용해야합니까?

편집

이미 책에 연결이 내 서버에서 예약 객체를 얻는 동시에 다시 보내 authorID을 통해, 저자에 연결해야합니다. 그러나 Author 객체가 아직 가져 오지 않았을 수 있으므로 ID를 유지해야합니다. 나는 영구 저장소에 다시 한 번 다시 반입하지 ​​않는

[bookMapping addConnectionForRelationship:@"author" connectedBy:@{ @"authorID": @"identifier" }]; 

은 그러나, 저자가 가져온 후에도, book.author는 null로 설정됩니다.

답변

0

작성자 ID를 기반으로하는 외래 키 매핑을 사용하여 관계를 연결하려면 RestKit을 가져야합니다. 그렇게하면 모든 업데이트가 동일한 컨텍스트에서 동시에 만들어지고 매핑 결과가 반환되기 전에 저장됩니다.

+0

편집을 참조하십시오. 나는 이미 그것을하고 있지만 저자가 본질적으로 다른 많은 것에 관련되어있는 사용자이기 때문에 저자로부터의 반대 의견은 책에 남기지 않을 것이다. – abisson