我正在尝试添加路由但是“无法添加与现有路由具有相同类和方法的路由。”
我有一个类具有相同的Post方法,但当然使用不同的方法。当我尝试运行我的应用程序时,我收到上述错误。有没有办法用通用方法设置路线?
[objectManager.router.routeSet addRoute:[RKRoute routeWithClass:[Thing class]
pathPattern:@"v1/things/update_location.json.json" method:RKRequestMethodPOST]];
[objectManager.router.routeSet addRoute:[RKRoute routeWithClass:[Thing class]
pathPattern:@"v1/things.json" method:RKRequestMethodPOST]];
以上是Restkit的副本,因为它使用相同的类“Thing”,因为Method是相同的?是什么给了什么?
答案 0 :(得分:1)
路由器用于在给定对象(在这种情况下为Thing
的实例)时构建请求。为了使其工作,当您要求RestKit发布对象时,只能有一个选项。需要根据命名路由或关系路由来描述任何其他路由,以保持路由集的唯一性。
您可以查看文档here,它描述了“路由生成”部分中定义路由器的所有3种方法(您目前只使用方法2)。您很可能想要定义一些命名路由,这些路由描述了您尝试通过每次上传实现的差异。
答案 1 :(得分:1)
如果它可以帮助任何人使用代码,那么下面是如何使用名称设置路径。
// When you are setting up your mapping, set up Route with Name.
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:userMapping
method:RKRequestMethodGET
pathPattern:LOGIN_URL
keyPath:nil
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[[RKObjectManager sharedManager].router.routeSet addRoute:[RKRoute routeWithName:LOGIN_ROUTE pathPattern:LOGIN_URL method:RKRequestMethodGET]];
[[RKObjectManager sharedManager] addResponseDescriptor:responseDescriptor];
// And when you are ready to make the http call, do the following
[[RKObjectManager sharedManager] getObjectsAtPathForRouteNamed:LOGIN_ROUTE
object:userProfile
parameters:params
success:success
failure:failure];