Objective c 升级到0.22后的RestKit问题
我最近将RestKit从0.20.3更新到了0.22版本。 我更新了日期格式化程序等,一切正常,除了两个网址 现在,我的两个POST请求找不到响应描述符。 我有一个“没有响应描述符匹配已加载的响应”错误,该错误列出了RKObjectManager上的每个响应描述符。特别是以下几行: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
<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];
}