Objective c 升级到0.22后的RestKit问题

Objective c 升级到0.22后的RestKit问题,objective-c,restkit,restkit-0.20,Objective C,Restkit,Restkit 0.20,我最近将RestKit从0.20.3更新到了0.22版本。 我更新了日期格式化程序等,一切正常,除了两个网址 现在,我的两个POST请求找不到响应描述符。 我有一个“没有响应描述符匹配已加载的响应”错误,该错误列出了RKObjectManager上的每个响应描述符。特别是以下几行: <RKResponseDescriptor: 0x1edf4f00 baseURL=https://mybaseurl/ pathPattern=transfer/execute statusCodes=200

我最近将RestKit从0.20.3更新到了0.22版本。 我更新了日期格式化程序等,一切正常,除了两个网址

现在,我的两个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'.  

您的响应描述符具有
方法:RKRequestMethodGET
,因此在发出POST请求时不会考虑它。将其更改为
RKRequestMethodPOST
RKRequestMethodAny

可以显示响应描述符的代码。你更新了不推荐使用的方法吗?是的,我没有关于不推荐使用的方法的警告,我更改了代码以使用值转换器。哦,天哪。。。我再也不会复制和粘贴代码了。这也解释了我的其他奇怪行为。非常感谢。这是否意味着RestKit0.20.3对响应描述符更为宽容?
responseDescriptorWithMapping:method:pathPattern:keyPath:statusCodes:
是一个非常新的方法,因此将响应描述符限制在特定方法是一个相对较新的功能。不推荐使用的方法默认为
Any
。我认为,一旦该方法存在,过滤就完全实现了。
// 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];
    }