Swift version: 5.6
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.
SAVE 50% To celebrate WWDC23, all our books and bundles are half price, so you can take your Swift knowledge further without spending big! Get the Swift Power Pack to build your iOS career faster, get the Swift Platform Pack to builds apps for macOS, watchOS, and beyond, or get the Swift Plus Pack to learn advanced design patterns, testing skills, and more.
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.