在Swift中,dispatch_after函数用于在指定时间后执行一个闭包或代码块。

dispatch_after函数接受三个参数:

  1. dispatch_time_t类型的参数,表示延迟的时间。可以使用dispatch_time函数来创建这个参数,其中可以指定延迟的开始时间和延迟的持续时间。
  2. dispatch_queue_t类型的参数,表示要在哪个队列中执行闭包或代码块。可以使用dispatch_get_main_queue()函数来获取主队列。
  3. 闭包或代码块,表示要延迟执行的操作。

以下是一个使用dispatch_after函数的示例:

let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(5 * NSEC_PER_SEC))
dispatch_after(delayTime, dispatch_get_main_queue()) {
    // 延迟5秒后执行的代码
    print("延迟执行")
}

在上面的示例中,我们创建了一个延迟时间为5秒的dispatch_time_t类型的参数。然后,我们使用dispatch_after函数将一个闭包传递给主队列,在5秒后执行这个闭包。

请注意,在Swift 3及更高版本中,dispatch_after函数已经被弃用。取而代之的是使用DispatchQueue类的asyncAfter函数来实现延迟执行操作。以下是使用asyncAfter函数的示例:

let delayTime = DispatchTime.now() + .seconds(5)
DispatchQueue.main.asyncAfter(deadline: delayTime) {
    // 延迟5秒后执行的代码
    print("延迟执行")
}

在这个示例中,我们使用DispatchTime.now()函数获取当前时间,并通过加上一个.seconds(5)的时间间隔来创建一个延迟时间。然后,我们使用DispatchQueue类的asyncAfter函数来延迟执行一个闭包

swift中的dispatch_after

原文地址: https://www.cveoy.top/t/topic/hHT6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录