Swift version: 5.6
Designated initializers are the default way of creating new instances of a type. There are others, known as convenience initializers, that are there to help you accomplish common tasks more easily, but those are in addition to your designated initializers rather than a replacement.
For example, you might create a Polygon
class that stores sets of points to be drawn later on, like this:
class Polygon {
var points: [CGPoint]
init(points: [CGPoint]) {
self.points = points
}
}
That initializer is your designated initializer: one that will set up all properties fully in a default way. You could add convenience initializers on top to perform certain tasks – creating squares or triangles would make sense in this scenario – but those must always end by calling a designated initializer.
BUILD THE ULTIMATE PORTFOLIO APP Most Swift tutorials help you solve one specific problem, but in my Ultimate Portfolio App series I show you how to get all the best practices into a single app: architecture, testing, performance, accessibility, localization, project organization, and so much more, all while building a SwiftUI app that works on iOS, macOS and watchOS.
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.