2013-12-12 130 views
0

我最近更新了RestKit從0.20.3到版本0.22。 我更新了日期格式化程序等,一切工作正常,除了兩個網址。升級到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來執行傳輸/執行,所以我真的不知道它在哪裏斷了。

它也好像mappingsDictionary上RKMapperOperation是主要方法空...

編輯

// 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

你的響應描述具有method:RKRequestMethodGET所以當你做一個POST請求將不予考慮。將其更改爲RKRequestMethodPOSTRKRequestMethodAny

+0

哦,我的上帝......我永遠不會複製和粘貼代碼。它解釋了我的其他奇怪行爲。非常感謝。 – florian

+0

這是否意味着RestKit 0.20.3對響應描述符更寬容? – florian

+1

'responseDescriptorWithMapping:method:pathPattern:keyPath:statusCodes:'是一種非常新的方法,因此將響應描述符限制爲特定的方法是一個相對較新的功能。不推薦使用的方法默認爲「Any」。我認爲,只要方法存在,過濾就完全實施了。 – Wain