- Get link
- Other Apps
What is the best approach to call the web services in a chain?
Create a dispatch group
Create a dispatch group
dispatch_group_t serviceGroup;
Call the first function/web service
-(void)callFirstWebService {
serviceGroup = dispatch_group_create();
//Call 1st web service here, In the completion block, call the second method which you want to perform serially
[self callSecondWebService];
dispatch_group_notify(serviceGroup,dispatch_get_main_queue(),^{
// Won't get here until everything has finished
NSLog(@"All Tasks finished");
//Reload table or another task which you want to perform when both service finished
});
}
-(void) callSecondWebService{
dispatch_group_enter(serviceGroup);
//Call 2nd web service and in the completion block, write the below code
dispatch_group_leave(serviceGroup);
}
//*******************Theoretical Explantion*****************
- Create a method where you want to call webservice. Depending on response, you want to call another webservice/method. After completion of all task, you want to perform last task which you write in first method itself (dispatch_group_notify).
- Create the dispatch group in first method
- In second method(which you want to perform serially), write dispatch_enter and dispatch_leave. It will ensure that the second task completed successfully.
- When all the dispatch groups leave, the dispatch group gets notified automatically and block will executes.
Comments
Post a Comment