首页 文章

在IOS中如何通过gcd延迟后调用方法? [重复]

提问于
浏览
-1

这个问题在这里已有答案:

有没有为什么在调度后用2秒调用方法,就像performSelector:withObject:afterDelay:?

3 回答

  • 2

    是的你可以,

    斯威夫特3,斯威夫特4

    DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
        <# YOUR CODE HERE #>
    }
    

    斯威夫特2

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(2.0 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) { () -> Void in
            <# YOUR CODE HERE #>
    }
    

    目标C.

    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC);
        dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
            <# YOUR CODE HERE #>
        });
    
  • 1

    是的,我们可以使用以下代码添加延迟来执行GCD

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 10 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
     // Do you work over here
    });
    

    希望这会帮助你 .

  • 8
    dispatch_time_t deferTime = 2.0f;
    dispatch_after(deferTime, dispatch_get_main_queue(), ^{
    //call you method here
    });
    

相关问题