【发布时间】:2014-08-20 14:28:51
【问题描述】:
有没有办法定义 2 个或多个响应描述符都具有相同的 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,
...
}
所以我想做的是定义两个不同的responseDescriptors——一个用于每个请求方法。所以这就是我所做的:
[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 请求。这真的把事情搞砸了。
我做错了什么?或者有什么办法可以在这里做我想做的事吗?
【问题讨论】:
-
你好,我的情况和你一样。你想好怎么解决了吗?
标签: ios objective-c restkit