在我的主控制器,该RESTKIT工作正常:RestKit使用缓存的或旧的响应描述
我的代码和响应描述是这样的:但是
// register mappings with the provider using a response descriptor
RKResponseDescriptor *responseDescriptor =
[RKResponseDescriptor responseDescriptorWithMapping:workOrderMapping
method:RKRequestMethodGET
pathPattern:@"/api/workorder/GetWorkOrderListSimple"
keyPath:nil
statusCodes:nil];
[objectManager addResponseDescriptor:responseDescriptor];
[[RKObjectManager sharedManager] getObjectsAtPath:@"/api/workorder/GetWorkOrderListSimple"
parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
NSLog(@"It Worked");
_workOrders = mappingResult.array;
[self.tableView reloadData];
}
failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"error': %@", error);
}];
所以这第一次调用工作正常,在我的第二个控制器上,它似乎在某种程度上重用了这个旧的响应描述符,我创建了一个新的响应描述符,但在错误消息中它仍然引用了GetWorkOrderListSimple,当我明确告诉它使用GetWorkOrderDetail时。
RKResponseDescriptor *responseDescriptor =
[RKResponseDescriptor responseDescriptorWithMapping:workOrderBigMapping
method:RKRequestMethodGET
pathPattern:@"/api/workorder/GetWorkOrderDetail"
keyPath:nil
statusCodes:nil];
但是出于某种原因,这是我的错误信息,任何人都可以点我在调试正确的方向?谢谢!!! http://xxxxxxx.ws pathPattern =/API /工作单/ GetWorkOrderListSimple statusCodes =(空)>失败:
A 200响应是从URL 'http://xxxxxxx.ws/api/workorder/GetWorkOrderDetail?workOrderId=116194',这未能匹配所有(1)响应描述符加载匹配:响应路径'/ api/workorder/GetWorkOrderDetail?workOrderId = 116194'与路径模式'/ api/workorder/GetWorkOrderListSimple'不匹配。
我具有相同的“装载”或“设置”代码中的每个视图控制器的viewDidLoad中,有两个视图控制器
我打电话configureRestKit在每viewDidLoad中,我应该不?这应该在应用程序委托或其他地方?
我想既然我在每个视图控制器配置套件viewDidLoad中这将是每一次
- (void)configureRestKit
{
// initialize AFNetworking HTTPClient
NSURL *baseURL = [NSURL URLWithString:@"http://xxxxxxxx.ws"];
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
// initialize RestKit
RKObjectManager *objectManager = [[RKObjectManager alloc] initWithHTTPClient:client];
// setup object mappings
RKObjectMapping *workOrderBigMapping = [RKObjectMapping mappingForClass:[WorkOrderBig class]];
[workOrderBigMapping addAttributeMappingsFromArray:@[@"WorkOrderId", @"Job", @"Address", @"Supervisor", @"PO", @"Priority", @"Status", @"ReceivedDate"]];
RKObjectMapping *workOrderDetailMapping = [RKObjectMapping mappingForClass:[WorkOrderDetail class]];
[workOrderDetailMapping addAttributeMappingsFromArray:@[@"WorkOrderDetailId", @"WorkOrderId", @"WorkOrderProblemId", @"DetailDescription", @"ProductId", @"Qty", @"PONumber", @"Code", @"ProductDescription", @"UOM", @"Price", @"OriginalPrice", @"PctMarkup", @"LineItem", @"OriginalTotal", @"TotalPrice"]];
RKObjectMapping *workOrderProblemMapping = [RKObjectMapping mappingForClass:[WorkOrderProblem class]];
[workOrderProblemMapping addAttributeMappingsFromArray:@[@"WorkOrderId", @"WorkOrderProblemId", @"Description", @"SpanishDescription", @"Action", @"LineItem"]];
//Define Relationships
[workOrderBigMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"Details"
toKeyPath:@"Details"
withMapping:workOrderBigMapping]];
[workOrderBigMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"Problems"
toKeyPath:@"Problems"
withMapping:workOrderProblemMapping]];
// register mappings with the provider using a response descriptor
RKResponseDescriptor *responseDescriptor =
[RKResponseDescriptor responseDescriptorWithMapping:workOrderBigMapping
method:RKRequestMethodGET
pathPattern:@"/api/workorder/GetWorkOrderDetail"
keyPath:@"/api/workorder/GetWorkOrderDetail"
statusCodes:nil];
[objectManager addResponseDescriptor:responseDescriptor];
- (void)loadWorkOrders
{
NSString *WorkOrderId = [NSString stringWithFormat:@"%i", _workOrderId];
NSMutableDictionary *params =[[NSMutableDictionary alloc] init];
[params setValue:WorkOrderId forKey:@"workOrderId"];
[[RKObjectManager sharedManager] getObjectsAtPath:@"/api/workorder/GetWorkOrderDetail"
parameters:params
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
NSLog(@"It Worked");
_workOrders = mappingResult.array;
//paint screen
WorkOrderBig *mainWorkOrder = [_workOrders objectAtIndex:0];
self.lblWorkOrderId.text = mainWorkOrder.WorkOrderId;
}
failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"What do you mean by 'there is no coffee?': %@", error);
}];
}
显示你如何使用'objectManager'和'[RKObjectManager sharedManager]' - 你有多个管理器吗? – Wain
我有两个独立的视图控制器,我以为我每次都在安装一个新的视图控制器。 –
我添加了更多的代码,感谢您的时间并查看了我发布的内容 –