Adding delay between execution of two following lines

delay, execution, objective-c

Solution

You can use gcd to do this without having to create another method

// ObjC

NSTimeInterval delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
  NSLog(@"Do some work");
});

// Swift

DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
    print("Do some work)
}

You should still ask yourself "do I really need to add a delay" as it can often complicate code and cause race conditions

Problem

I need to add a delay between the execution of two lines in a(same) function. Is there any favorable option to do this? Note: I don't need two different functions to do this, and the delay must not affect other functions' execution. eg: ``` line 1: [executing first operation]; line 2: Delay /* I need to introduce delay here */ line 3: [executing second operation]; ```

Original source

Related problems