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.
SPONSORED Transform your career with the iOS Lead Essentials. Unlock over 40 hours of expert training, mentorship, and community support to secure your place among the best devs. Click for early access to this limited offer and a FREE crash course.
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.