Junior
What are the two types of initializers in Swift?
sobes.tech AI
Answer from AI
- Designated Initializers: The primary initializers responsible for initializing all properties of a class. Each class must have at least one such initializer.
- Convenience Initializers: Helper initializers that simplify creating class instances for specific scenarios. They must call another initializer from the same class (directly or indirectly) until they call a designated initializer.
Example:
class MyClass {
var value: Int
var text: String
// Designated Initializer
init(value: Int, text: String) {
self.value = value
self.text = text
}
// Convenience Initializer
convenience init(value: Int) {
self.init(value: value, text: "Default") // Calls the designated initializer
}
// Another Convenience Initializer
convenience init(text: String) {
self.init(value: 0, text: text) // Calls the designated initializer
}
}