2014-02-06 3 views
0

은 단순히 내 편안한 서비스에서 하나 개의 항목을 검색하려고restkit 0.20 다음으로 getObject에 NSManagedObject에 전달할 수 없습니다 : 방법

http://www.example.com/person/25 

내가 어떻게 든 '25'에 전달해야합니다 (작동 확인) URL의 일부 나는 내가 RKRoute를 사용해야한다고 생각한다. RestKit에서 이것을 실행하는 방법은 RKObjectManager의 getObject : 메서드를 사용하는 것입니다.

RestKit 0.22를 사용하여 전체 Person 객체를 예상하므로 getObject : 메소드를 호출하는 방법을 모르겠습니다. 문자열 '25'만 전달하면됩니다.

문제의 방법은 다음과 같습니다 [self getObject:personNSManagedObject path:nil parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) .....

난 그냥 "사람 * 사람이 NSManagedObject 때문에 사람 = [[사람의 ALLOC] 초기화]

하지만이 작업을 수행 할 때 말할 수 없다

:.

Performing object mapping to temporary target objectID. Results may not be accessible without obtaining a permanent object ID. restkit.network:RKResponseMapperOperation.m:457 Failed to retrieve existing object with ID: 0x1664ac90

모든 :

NSManagedObjectContext *moc = self.managedObjectStore.mainQueueManagedObjectContext; 
NSEntityDescription *person = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:moc]; 
Person *personNSManObj = [[Person alloc] initWithEntity:person insertIntoManagedObjectContext:nil]; 
personNSManObj.id = 3; 

는 나는 다음과 같은 오류가 발생합니다 아이디어?

답변

1

새 개체를 영구 저장소에 다시 저장해야합니다. 데이터로드 및 매핑이 다른 스레드에서 발생하지만 데이터를 제공된 객체로 다시 매핑하려고 시도합니다. 개체가 삽입되었지만 저장되지 않았기 때문에 RestKit은 개체로 변환하려고하지만 일시적으로 관리되는 개체 ID가 있습니다. 저장하면 RestKit이 응답 데이터로 완전히 채울 데이터 저장소에 '스텁'개체가 생성됩니다 (성공했다고 가정).

대체 접근법은 경로에 삽입 될 필수 키/값 쌍을 사전에 제공하는 것입니다. 그런 다음 RestKit이 대상 객체를 만듭니다.

+0

안녕하세요, Wain, 와우 감사합니다. 나는 사전 경로에가는 것에 대해 생각하고있다. 이 사전을 어떤 수업에서 제공할지에 대한 힌트를 줄 수 있습니까? RKRoute 문서에 NSDictionary를 허용하는 매개 변수가 없습니다. 감사! – user798719

+0

라우트가 제공된 클래스와 일치하므로 관리 대상 객체 클래스와 일치하지만 사전 (또는 다른 사용자 정의 객체)으로 변경할 수 있습니다. ' – Wain

+2

@ user798719 정답으로 사용 할 수 있습니까? –

관련 문제