Swift version: 5.10
There are two ways to run code after a delay using Swift: GCD and perform(_:with:afterDelay:)
, but GCD has the advantage that it can run arbitrary blocks of code, whereas the perform()
method runs methods.
So, using GCD we can write something that runs code after a half-second delay:
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
// your code here
}
An alternative option is to use perform(_:with:afterDelay:)
, which lets you specify a method to call after a certain time has elapsed.
To call the authenticate()
method after 1 second, you would use this code:
perform(#selector(authenticate), with: nil, afterDelay: 1)
Note: any method called using perform(_:with:afterDelay:)
must be marked with the @objc
attribute.
TAKE YOUR SKILLS TO THE NEXT LEVEL If you like Hacking with Swift, you'll love Hacking with Swift+ – it's my premium service where you can learn advanced Swift and SwiftUI, functional programming, algorithms, and more. Plus it comes with stacks of benefits, including monthly live streams, downloadable projects, a 20% discount on all books, and more!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 4.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.