Swift version: 5.10
Singletons are objects that should only ever be created once, then shared everywhere they need to be used. They are common on Apple’s platforms: FileManager
, UserDefaults
, UIApplication
, and UIAccelerometer
are all mostly used through their singleton implementations.
The basic implementation of a Swift singleton looks like this:
class Settings {
static let shared = Settings()
var username: String?
private init() { }
}
Adding a private
initializer is important, because it stops other parts of our code from trying to create a Settings
class instance. However, the class creates its own instance of itself as a static variable, which means the only instance of the Settings
class is the one it created: Settings.shared
.
SPONSORED Get accurate app localizations in minutes using AI. Choose your languages & receive translations for 40+ markets!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0 – learn more in my book Swift Design Patterns
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.