Sobes.tech
Junior — Middle

В какъв ред се изпълняват конструкторите и инициализаторите при създаването на екземпляр на клас?

sobes.tech AI

Отговор от AI

Когато създавате екземпляр на клас в iOS (например, в Swift), редът на изпълнение е следният:

  1. Първо се изпълняват инициализаторите на всички свойства, обявени в класа (ако имат стойности по подразбиране).
  2. След това се извиква конструкторът (инициализаторът) на самия клас.
  3. Ако класът наследява, първо се извикват инициализаторите на суперкласа, а след това на подкласовете.

Пример в Swift:

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

class Child: Parent {
    var age: Int = 10
    override init() {
        super.init() // първо инициализаторът на суперкласа
        print("Child init")
    }
}

let c = Child()
// Изход:
// Parent init
// Child init

По този начин първо се инициализират свойствата, след това се извиква инициализаторът на суперкласа, а след това на подкласовете.