响应映射来获取具有dynamicpathrestkit的对象

如何设置响应映射到path模式pipe理器..如果path上的getobjects不同于用于映射响应的path模式。

[manager addResponseDescriptorsFromArray: @[[RKResponseDescriptor responseDescriptorWithMapping:categoryMapping pathPattern:A keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]]]; [manager getObjectsAtPath:A/ID parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { NSLog(@" Category success"); [self.delegate didReceiveAssignedCategories]; } failure:^(RKObjectRequestOperation *operation, NSError *error) { NSLog(@"Category failure"); }]; 

响应映射path即:必须将A设置为用于getobject的dynamicpath,即:A / ID。 例如:

打电话1)

A = / getAllCategories

A / ID = / getAllCategories / 123

打电话2)

A = / getAllCategories

A / ID = / getAllCategories / 456

响应映射是相同的123,456只有当我得到的对象我使用不同的url,即:与附加的ID。 怎么做 ?

如果您有两个path模式都返回相同types的数据,那么您可以使用2个不同的响应描述符相同的映射。

如果您有1个path模式可以返回2种不同types的数据,那么您需要使用RKDynamicMapping来“截取”传入的数据,并决定实际需要的映射。


从你编辑的问题,“模式”是你误会的重要事情。 您需要使用path模式,而不是静态path:

 @"getAllCategories/:identity" 

1)首先创build响应映射

 [manager addResponseDescriptorsFromArray: @[[RKResponseDescriptor responseDescriptorWithMapping:categoryMapping pathPattern:@"getAllCategories/:categoryID" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]]]; 

2)在其中创build具有categoryID的类。

 [CategoryRequest class] 

3)创build该类的对象并设置categoryID

 CategoryRequest *categoryRequest = [CategoryRequest alloc] init]; categoryRequest.categoryID = @"123"; 

4)使用该对象调用getobject

 [manager getObject:categoryRequest path:@"getAllCategories/123" parameters:params success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { NSLog(@"Success"); } failure:^(RKObjectRequestOperation *operation, NSError *error) { NSLog(@"Failure"); }]; 

如果需要对同一映射进行另一个调用,则创build类别请求类的对象设置新的类别标识,并使用该类别请求和所需path模式调用获取对象。