有没有办法定义两个或多个响应描述符都具有相同的pathPattern
?我的假设是,它们不仅会基于pathPattern
,还会基于method
。但显然事实并非如此。
这是我的对象映射:
RKObjectMapping *commentMapping = [RKObjectMapping mappingForClass:[Comment class]];
[commentMapping addAttributeMappingsFromArray:@[@"comment", @"rating", @"views", @"venue", @"user_views"]];
当我发出GET请求时,我会得到一个与此类似的列表:
{
'meta': {
'total_objects': 2,
'limit': 20,
...
},
'objects': [
{
'comment': '...',
'rating': 3.5,
...
},
...
]
}
当我做一个POST请求来创建一个新对象时,我会回到这样的事情:
{
'comment': '...',
'rating': 3.5,
...
}
所以我想要做的是定义两个不同的responseDescriptor
s - 每个请求方法一个。所以这就是我所做的:
[objectManager addResponseDescriptor:[RKResponseDescriptor responseDescriptorWithMapping:commentMapping
method:RKRequestMethodGET
pathPattern:@"comment/"
keyPath:@"objects"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]];
[objectManager addResponseDescriptor:[RKResponseDescriptor responseDescriptorWithMapping:commentMapping
method:RKRequestMethodPOST
pathPattern:@"comment/"
keyPath:nil
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]];
问题是,总是使用第二个(具有nil
keyPath
的那个)。即使是GET请求。这真的搞砸了。
我做错了什么?或者甚至有什么方法可以做我想要的事情吗?
答案 0 :(得分:0)
RKObjectManager 有一个名为 * addResponseDescriptorsFromArray :( NSArray ) 的方法。您需要将两个响应描述符添加到NSArray,然后将NSArray传递给此方法。
您可以在此处找到有关此方法的更多信息http://restkit.org/api/latest/Classes/RKObjectManager.html#//api/name/addRequestDescriptorsFromArray: