I have 3 function in my code. The code i did for manage queue for function execution.
 [self firstMethodWithOnComplete:^{
    [self SecongMethodWithOnComplete:^{
        dispatch_async(dispatch_get_main_queue(), ^{
            [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(CallThirdMethod) userInfo:nil repeats:NO];
            });
    }];
}];
First And Second Function
- (void)firstMethodWithOnComplete:(void (^)(void))onComplete {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
    //processing here.....
    [self CallFirstMethod];
    onComplete();
});
 }
- (void)SecongMethodWithOnComplete:(void (^)(void))onComplete {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
    //processing here.....
    [self CallSecondMethod];
    onComplete();
});
 }
The problem is i am unable to manage their execution. I want execution order such in a way that second function only execute if first is over and third execute if second execution over. Please help me to solve this or give any appropriate suggestions.
 
    