2012-04-19 1 views
0

새로운 restkit 10.0의 RKObjectMapping과 혼동 스럽습니다. RKClient로 웹 서비스를 호출했으며 JSON 형태로 응답을 받았습니다. 이제 JSON 문자열을 User 클래스와 매핑하려고합니다. 어떻게 수행하나요?restkit 10.0의 RKObjectMapping 매핑 문제

인용문 { "ID": 2, "나 displayName": "기리 Bhushan", "역할"널 (null) "사용자 이름": "FBUser-123456", "비밀번호": "dddddddddddddddd = \ 연구 \ ","이메일 ":"[email protected] ","성별 ":"M ","birthDate ": null,"friends ": null,"bloodGroup ": null,"firstName ": null,"lastName " : NULL "PHONENUMBER"이 NULL}

난 다음 코드 시도 :

RKObjectMapping userMapping * = [RKObjectMapping mappingForClass : User 클래스]; [userMapping mapKeyPath : @ "id"toAttribute : @ "userId"];

[userMapping mapKeyPath:@"displayName" toAttribute:@"displayName"]; 
[userMapping mapKeyPath:@"userName" toAttribute:@"userName"]; 
[userMapping mapKeyPath:@"password" toAttribute:@"password"]; 
[userMapping mapKeyPath:@"email" toAttribute:@"email"]; 
[userMapping mapKeyPath:@"gender" toAttribute:@"gender"]; 
[userMapping mapKeyPath:@"birthDate" toAttribute:@"birthDate"]; 
[userMapping mapKeyPath:@"bloodGroup" toAttribute:@"bloodGroup"]; 
[userMapping mapKeyPath:@"firstName" toAttribute:@"firstName"]; 
[userMapping mapKeyPath:@"lastName" toAttribute:@"lastName"]; 

[userMapping mapKeyPath:@"phoneNumber" toAttribute:@"phoneNumber"]; 

[[RKObjectManager sharedManager].mappingProvider setMapping:userMapping forKeyPath:@"user"]; 

하지만, 내가 어떻게 RKObjectMapping와 JSON 문자열을지도 하는가? 당신이 당신의 JSON의 루트 수준에서 사용자이있는 경우

답변

0

, 다음 작동합니다 :
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"" delegate:self];

다음과 같이 델리게이트 메소드를 구현 :

RKObjectManager *manager = [RKObjectManager sharedManager]; 
RKManagedObjectMapping *userMapping = [RKManagedObjectMapping mappingForClass:[User class] inManagedObjectStore:manager.objectStore]; 
[userMapping mapKeyPath:@"id" toAttribute:@"userId"]; 
[userMapping mapAttributes:@"displayName",@"userName",@"password", nil]; // Add other attributes 
[manager.mappingProvider setMapping:userMapping forKeyPath:@""]; 
0

을이 라인을 누락 :
(void)objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objects{ NSLog(@"Objects Retrieved: %d\n%@", objects.count, objects);
YourObject* obj = [objects objectAtIndex:0];

NSString* info = [NSString stringWithFormat: 
        @"Value 1 is %@\n" 
        @"Value 2 is %@\n" 
        @"Value 3 is: %@", 
        [obj value1], 
        [obj value2], 
        [obj value3]; 

} '

희망이 있습니다. XD