Назад к вопросам
Junior
77
questionbank
Какие существуют два типа инициализаторов в Swift?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
- Designated Initializers (Назначенные инициализаторы): Основные инициализаторы, отвечающие за инициализацию всех свойств класса. У каждого класса должен быть хотя бы один такой инициализатор.
- 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
}
}