Sobes.tech
Junior — Middle

În ce ordine se execută constructorii și inițializatorii la crearea unei instanțe de clasă?

sobes.tech AI

Răspuns de la AI

Când se creează o instanță a unei clase în iOS (de exemplu, în Swift), ordinea de execuție este următoarea:

  1. Mai întâi, sunt executori initializatorii tuturor proprietăților declarate în clasă (dacă au valori implicite).
  2. Apoi, se apelează constructorul (initializatorul) clasei în sine.
  3. Dacă clasa moștenește de la alta, mai întâi sunt apelați initializatorii superclasei, apoi cei ai subclasei.

Exemplu în Swift:

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

class Child: Parent {
    var age: Int = 10
    override init() {
        super.init() // mai întâi constructorul superclasei
        print("Child init")
    }
}

let c = Child()
// Ieșire:
// Parent init
// Child init

Prin urmare, mai întâi sunt inițializate proprietățile, apoi se apelează constructorul superclasei, urmat de cel al subclasei.