Назад к вопросам
Junior
77
questionbank

Какие существуют два типа инициализаторов в Swift?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

  1. Designated Initializers (Назначенные инициализаторы): Основные инициализаторы, отвечающие за инициализацию всех свойств класса. У каждого класса должен быть хотя бы один такой инициализатор.
  2. Convenience Initializers (Удобные инициализаторы): Вспомогательные инициализаторы, которые упрощают создание экземпляров класса для определенных сценариев. Они должны вызывать другой инициализатор из того же класса (прямо или косвенно), пока не вызовут назначенного инициализатора.

Пример:

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
    }
}