#10: Executing closures with a delay in Swift 3
There are a few ways to execute a closure with a delay, you could use the old Timer
class and its sheduledTimer
method or even create a DispatchSource
scheduling a one time event with scheduleOneshot
, but you can have the same result simply using the Grand Central Dispatch and its queues:
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(4), execute: {
// Your code that will be executed with a 4 seconds delay
})
Note how after SE-0088 the GCD has now a more “object oriented” interface and how easily you can specify a dealine using
DispatchTime
and the DispatchTimeInterval
enum.
Did you like this article? Let me know on Twitter or subscribe for updates!