Назад к вопросам
Junior
124
questionbank
Как запустить код при создании экземпляра класса?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Используя инициализаторы.
class MyClass {
var property: String
init(property: String) { // Инициализатор
self.property = property
// Здесь можно выполнять дополнительный код при создании экземпляра
print("Экземпляр MyClass создан с property: \(property)")
}
}
let instance = MyClass(property: "Пример") // Вызов инициализатора при создании
Инициализаторы могут быть:
- Designated Initializers: Основные инициализаторы, полностью инициализирующие все свойства.
- Convenience Initializers: Вспомогательные инициализаторы, вызывающие designated initializers, чтобы упростить создание экземпляра.
- Failable Initializers: Инициализаторы, которые могут вернуть nil в случае ошибки инициализации.
class AnotherClass {
var count: Int
init?(count: Int) { // Failable initializer
if count < 0 {
return nil // Инициализация не удалась
}
self.count = count
}
convenience init(stringCount: String) { // Convenience initializer
if let intCount = Int(stringCount) {
self.init(count: intCount)! // Вызов designated initializer
} else {
self.init(count: 0)! // Предоставляем значение по умолчанию или обрабатываем ошибку
}
}
}
let validInstance = AnotherClass(count: 10) // Инициализация успешна
let invalidInstance = AnotherClass(count: -5) // Инициализация вернула nil