Sobes.tech
Junior — Middle

¿En qué orden se ejecutan los constructores e inicializadores al crear una instancia de una clase?

sobes.tech AI

Respuesta de la IA

Al crear una instancia de una clase en iOS (por ejemplo, en Swift), el orden de ejecución es el siguiente:

  1. Primero se ejecutan los inicializadores de todas las propiedades declaradas en la clase (si tienen valores predeterminados).
  2. Luego se llama al constructor (inicializador) de la propia clase.
  3. Si la clase hereda de otra, primero se llaman los inicializadores de la superclase y luego los de la subclase.

Ejemplo en Swift:

class Parent {
    var name: String = "Parent"
    init() {
        print("Parent init")
    }
}

class Child: Parent {
    var age: Int = 10
    override init() {
        super.init() // primero el inicializador de la superclase
        print("Child init")
    }
}

let c = Child()
// Salida:
// Parent init
// Child init

Por lo tanto, primero se inicializan las propiedades, luego se llama al inicializador de la superclase y después el de la subclase.