2012-11-12 6 views
2

나는 새로운 것이 출시되기 때문에 이전 버전으로 시작하는 것을 피하기 위해 개발 분기를 사용하고 있습니다. 불행히도, 나는 기초를하는 방법을 알아낼 수 없다 (나는 RestKit에 처음이다).Restkit 매핑을 사용하는 방법

기본 단계는 두 개의 매개 변수를 사용하여 "/ auth/login /"을 호출하고 json 문서를 다시 검색하는 것으로 시작합니다. 어떤 도움이라도 대단히 감사하겠습니다!

업데이트 1 : 잘못된 질문입니까? 나는 무엇을 놓치고 있습니까? 사람들은 프로젝트 용 Restkit을 사용하지 않으십니까?

업데이트 2 :이 오류가 발생하면 어떻게해야합니까? 나는 클래스 매핑과 경로 패턴을 가지고 있지만 실제로해야 할 일을 얻지 못한다.

Code=1001 "Unable to find any mappings for the given content" 

난 그냥 https://github.com/RestKit/RestKit/blob/development/README.md

업데이트 3에서 업데이트 된 readme 파일을 발견 : 나는/간단한 전화를 할/성공 호출하지만 아무것도 응답하는 다양한 방법을 시도했습니다. 아웃풋이 성공했다는 것을 알 수 있지만 RestKit은 항상 컨텐트를 맵핑 할 수 없다고 불평합니다. 나는 정말로 그것을 얻지 않는다. 다음과 같이 결과 JSON 대부분입니다 :

{ 
     "email" : "[email protected]", 
     "fullname" : "Full Name" 
} 

내가 시도 상관없이, 나는 그것을 알아 내기 위해 RestKit을 얻을 수 없습니다. 도움? 누군가?

업데이트 4 : 페이로드를 다음과 같이 변경하고 설명자 문을 변경했지만 결과에 변경이 없었습니다. 호출 성공, RestKit 오류 1001 실패합니다. 여전히 내 keyPath = null 말한다. 내가 뭘 놓치고 있니?

{ 
    "whoami" : { 
     "email" : "[email protected]", 
     "fullname" : "Full Name" 
    } 
} 

[manager addResponseDescriptor:[RKResponseDescriptor responseDescriptorWithMapping:mymap 
               pathPattern:@"/auth/login/" 
                keyPath:@"whoami" 
               statusCodes:statusCodes]]; 
+0

당신이 GitHub의 사이트에있는 문서를 봤어? https://github.com/RestKit/RestKit/blob/master/Docs/Object%20Mapping.md. 아니면 몇 가지 예를 들면 googled? http://liebke.github.com/restkit-github-client-example/ – marvin

+2

대부분의 예제는 더 이상 존재하지 않는 메소드를 사용하고 RKClient와 같은 일부 클래스는 더 이상 존재하지 않습니다. 나는 잠시 동안 학습 곡선을 넘어서려고 노력하고있다. 상세한 예제는 작업의 한 가지 방법을 보여 주지만 서버가 RestKit이 서버를 작동시키는 방법을 정확하게 작동시키는 경우에만 나타납니다. 뭔가 다른 일을하는 것은 정말 힘들어 보이는데 그 이유는 무엇을해야할지 분명하지 않기 때문입니다. 그래, 난 정말 혼란 스러워요 :) – darren

+0

두 번째 예제는 당신이 더 이상 존재하지 않는 "RKObjectMapper * mapper = objectManager.mapper"에 대한 호출을 제외하고는 많은 것을 만들 수 있습니다. – darren

답변

1

어쩌면이 요청은 다음과 같이 보일 수 있습니다 help..the 수 있습니다

NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; 
[params setObject:email forKey:@"email"]; 
[params setObject:fullname forKey:@"fullname"]; 


NSMutableURLRequest *rq = [manager requestWithObject:[User new] method:RKRequestMethodPOST path:@"http://url" parameters:params]; 

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:[User mapping] pathPattern:nil keyPath:nil statusCodes:nil]; 

RKObjectRequestOperation *operation = [[RKObjectRequestOperation alloc] initWithRequest:rq responseDescriptors:@[responseDescriptor]]; 

[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *result) { 

    //success 

} failure:^(RKObjectRequestOperation *operation, NSError *error) { 

    //error 

}]; 
[operation start]; 

및 매핑 :

+ (RKObjectMapping *)mapping 
{ 
    RKObjectMapping *requestMapping = [RKObjectMapping mappingForClass:[self class]]; 
    [requestMapping addAttributeMappingsFromDictionary:@{ 
    @"ContactDetail":  @"contactDetail", 
    @"IdUser":   @"idUser", 
    @"Name":    @"name", 
    @"Address":   @"address", 
    @"UserSettings":  @"userSettings" 
    }]; 

    // if the obj have relationship 
    RKRelationshipMapping *rl = [RKRelationshipMapping relationshipMappingFromKeyPath:@"someKey" toKeyPath:@"toKey" withMapping:[Obj mapping]]; 
    [requestMapping addPropertyMappingsFromArray:@[rl]]; 

    return requestMapping; 
} 
관련 문제