2013-07-09 3 views
0

Restkit을 사용하여 서버에서 정보를 가져 오는 iOS 앱이 있습니다. 나는 하나 이상의 CoreData Entity를 사용하고있다. Restkit에 대한 새로운 엔터티 매핑을 설정했지만 잘못된 엔터티 매핑을 사용하고 있기 때문에 서버에서 내 응답으로 매핑 할 수 없습니다. 누군가가 사용법을 알려줄 수 있습니까? 여기 restkit에게 사용할 엔티티 매핑을 알려주는 방법

두 맵퍼 있습니다
RKEntityMapping *articleEntityMapping = [RKEntityMapping mappingForEntityForName:@"Gist" inManagedObjectStore:managedObjectStore]; 
[entityMapping addAttributeMappingsFromDictionary:@{ 
@"id.text":    @"gistID", 
@"title.text":   @"title", 
@"hashtags.text":  @"hashtags", 
@"imageUrl.text":  @"imageUrl", 
@"description.text": @"summary", 
@"copy.text":   @"fullArticle", 
@"articleId.text":  @"articleId"}]; 
entityMapping.identificationAttributes = @[ @"gistID" ]; 

RKEntityMapping *userEntityMapping = [RKEntityMapping mappingForEntityForName:@"UserInfo" inManagedObjectStore:managedObjectStore]; 
[userEntityMapping addAttributeMappingsFromDictionary:@{ 
@"firstName.text":  @"firstName", 
@"lastName.text":  @"lastName", 
@"birthDay.text":  @"birthDay", 
@"birthMonth.text":  @"birthMonth", 
@"birthYear.text":  @"birthYear"}]; 
userEntityMapping.identificationAttributes = @[ @"birthDay" ]; 

은 내가 identificationAttributes이 그것을 큐를 준 생각하지만 작동하지 않았다. 이 두 엔티티 사이에는 관계가 없습니다. 그들은 서버 측에서 전혀 관련없는 API에서 왔습니다. 여기

내가 여기 articleEntityMapping

[[RKObjectManager sharedManager] postObject:nil path:@"/rest/search?ip=255.255.255.0" parameters:search success:nil failure:nil]; 

을 사용 나는 userEntityMapping 사용하지만,하지 않는 것이 요청을하는데 사용하고 무엇 요청을하는데 사용하고 있습니다 것입니다.

[[RKObjectManager sharedManager] postObject:nil path:@"/rest/person/login?ip=255.255.255.0" parameters:postBody success:nil failure:nil]; 

답변

0

당신의 맵핑은 이야기의 절반이며, 나머지 절반은 응답 기술자입니다. 매핑이 RestKit에 수신 된 데이터를 변환하는 방법을 알려주는 동안 응답 디스크립터는 RestKit에 매핑이 적합한 지 알려줍니다. 이는 경로 패턴과 키 경로 매개 변수의 조합으로 수행됩니다. 경로 패턴은 데이터를 가져 오는 데 사용 된 URL과 다시 일치하므로이를 설정해야합니다.

+0

와우는 창피합니다. 나는 3 개의 응답 디스크립터를 가지며 완전히 명백한'responseDescriptorWithMapping :'을 보지 못했다. 포인터 Wain 주셔서 감사합니다. (다시!) – Ben