Swift version: 5.10
iOS gives you two ways to run code asynchronously: GCD and performSelector(inBackground:)
. The first option looks like this:
DispatchQueue.global(qos: .userInitiated).async { [unowned self] in
self.yourCodeHere()
}
The .userInitiated
quality of service setting is the highest priority after userInteractive
. You can also use utility
(lower priority) or .background
(lowest priority.)
The second option looks like this:
performSelector(inBackground: #selector(yourCodeHere), with: nil)
You'll need to replace yourCodeHere
with the name of an actual method. If you want to pass a parameter, make sure and use “yourCodeHere:" and provide a value for the with
parameter.
SPONSORED Alex is the iOS & Mac developer’s ultimate AI assistant. It integrates with Xcode, offering a best-in-class Swift coding agent. Generate modern SwiftUI from images. Fast-apply suggestions from Claude 3.5 Sonnet, o3-mini, and DeepSeek R1. Autofix Swift 6 errors and warnings. And so much more. Start your 7-day free trial today!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 4.0 – see Hacking with Swift tutorial 9
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.