Sobes.tech
Junior

What are the two types of initializers in Swift?

sobes.tech AI

Answer from AI

  1. Designated Initializers: The primary initializers responsible for initializing all properties of a class. Each class must have at least one such initializer.
  2. 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
    }
}