Sobes.tech
Назад к вопросам
Junior — Middle
66

В каком контексте или при каких обстоятельствах вызывается метод deinit в Swift?

Компании, где спрашивали
Яндекс МаркетЯндекс Маркет
AvitoAvito
SmartWay

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

sobes.tech AI

Метод deinit в Swift вызывается автоматически перед тем, как экземпляр класса будет удалён из памяти. Это деструктор, который позволяет освободить ресурсы, закрыть файлы, отменить наблюдателей и выполнить другую очистку.

deinit вызывается в следующих обстоятельствах:

  • Когда счётчик ссылок на объект достигает нуля (ARC — автоматическое управление памятью).
  • Перед тем, как объект будет деинициализирован и память освобождена.

Пример использования deinit:

class FileHandler {
    let fileName: String

    init(fileName: String) {
        self.fileName = fileName
        print("Открыт файл: \(fileName)")
    }

    deinit {
        print("Закрыт файл: \(fileName)")
    }
}

func example() {
    let handler = FileHandler(fileName: "data.txt")
    // handler используется внутри функции
} // здесь handler выходит из области видимости, вызывается deinit

Таким образом, deinit полезен для управления ресурсами и очистки при уничтожении объекта.