2013-12-12 5 views
0

최근에 RestKit을 0.20.3에서 0.22로 업데이트했습니다. 날짜 서식 지정자 등을 업데이트했으며 두 URL을 제외하고는 모든 것이 올바르게 작동합니다.0.22로 업그레이드 한 후 RestKit 문제가 발생했습니다.

이제 내 POST 요청 중 두 곳에서 응답 설명자를 찾지 못했습니다. RKObjectManager에있는 각 응답 설명자를 나열하는 "응답 설명자가 응답과 일치하지 않습니다"라는 오류가 있습니다. 그리고 특히 다음 줄은 :

<RKResponseDescriptor: 0x1edf4f00 baseURL=https://mybaseurl/ pathPattern=transfer/execute statusCodes=200-299> failed to match: response path 'transfer/execute' did not match the path pattern 'transfer/execute'. 

제가 누락되었을 수있는 마이그레이션 가이드로 안내해 줄 수 있습니까? 응답 설명자를 찾으려는 중단 점을 넣는 것을 디버깅하고 - (BOOL)gatherParameterValues:(NSArray**)pValues fromString:(NSString *)string으로 이동하면 전송/실행에 대해 YES가 표시되므로 실제로 어디에서 중단되는지 알 수 없습니다. 또한 RKMapperOperation에 mappingsDictionary 것 같다

편집 ... 주요 방법에 비어

// POST Requests 
#pragma mark [POST] transfer/execute 
    { 
     // execute transfer 
     NSString *pathPattern = @"transfer/execute"; 

     // route 
     [manager.router.routeSet 
     addRoute:[RKRoute routeWithClass:[Transfer class] 
           pathPattern:pathPattern 
            method:RKRequestMethodPOST]]; 

     // request 
     RKMapping *requestMapping = [self.mappingProvider transferMapping]; 
     RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor 
                requestDescriptorWithMapping:requestMapping 
                objectClass:[Transfer class] 
                rootKeyPath:nil 
                method:RKRequestMethodPOST]; 
     [manager addRequestDescriptor:requestDescriptor]; 

     // response 
     RKMapping *responseMapping = [self.mappingProvider transferResultMapping]; 
     RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor 
                responseDescriptorWithMapping:responseMapping 
                method:RKRequestMethodGET 
                pathPattern:pathPattern 
                keyPath:nil 
                statusCodes:statusCodesSuccess]; 
     [manager addResponseDescriptor:responseDescriptor]; 
    } 
+0

응답 설명자의 코드를 표시 할 수 있습니까? 사용되지 않는 메소드를 업데이트 했습니까? – Wain

+0

그리고 예, 가치있는 변압기를 사용하도록 코드를 변경했습니다. – florian

답변

1

귀하의 응답 디스크립터를 가지고 당신이 POST 요청을 할 때 그래서이 고려되지 않습니다 method:RKRequestMethodGET. 값을 RKRequestMethodPOST 또는 RKRequestMethodAny으로 변경하십시오.

+0

오 세상에 ... 나는 코드를 다시 복사하고 붙여 넣지 않을 것입니다. 그리고 내가 가진 다른 이상한 행동을 설명합니다. 고마워. – florian

+0

RestKit 0.20.3이 응답 설명자에 대해 더 관대하다는 것을 의미합니까? – florian

+1

'responseDescriptorWithMapping : method : pathPattern : keyPath : statusCodes :'는 상당히 새로운 방법이므로 응답 디스크립터를 특정 메소드로 제한하는 것은 상대적으로 새로운 기능이다. 사용되지 않는 메소드의 기본값은'Any'입니다. 방법이 존재하자마자 필터링이 완전히 구현 된 것 같습니다. – Wain

관련 문제