swift中的dispatch_after
在Swift中,dispatch_after函数用于在指定时间后执行一个闭包或代码块。
dispatch_after函数接受三个参数:
- dispatch_time_t类型的参数,表示延迟的时间。可以使用dispatch_time函数来创建这个参数,其中可以指定延迟的开始时间和延迟的持续时间。
- dispatch_queue_t类型的参数,表示要在哪个队列中执行闭包或代码块。可以使用dispatch_get_main_queue()函数来获取主队列。
- 闭包或代码块,表示要延迟执行的操作。
以下是一个使用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函数来延迟执行一个闭包
原文地址: https://www.cveoy.top/t/topic/hHT6 著作权归作者所有。请勿转载和采集!