Swift процесс деструктор
Перед тем, как экземпляр класса отпущена, вызывается деструктор немедленно. Используйте ключевые слова deinit
для обозначения деструктор, используйте аналогичную функцию инициализации init
, чтобы отметить. Деструкторы относится только к типам классов.
Принцип процесса Destructor
Swift будет автоматически освободить экземпляр больше не требуется, чтобы высвободить ресурсы.
Swift с помощью автоматического подсчета ссылок на (ARC) обрабатывает экземпляры управления памятью.
Обычно, когда вам не нужно вручную экземпляр освобождается для очистки. Тем не менее, при использовании собственных ресурсов, возможно, потребуется сделать некоторые дополнительные очистки.
Например, если вы создаете пользовательский класс, чтобы открыть файл и записать некоторые данные, возможно, должны быть освобождены до экземпляра класса, чтобы закрыть файл.
грамматика
В определении класса, каждый класс может иметь не более одного деструктора. Деструктор без каких-либо параметров, без скобок в редакции:
deinit { // 执行析构过程 }
примеров
var counter = 0; // 引用计数器 class BaseClass { init() { counter++; } deinit { counter--; } } var show: BaseClass? = BaseClass() print(counter) show = nil print(counter)
Выход выше выполнение программы:
1 0
Когда шоу = ноль утверждение выполняется, калькулятор минус 1, показывают, что память будет освобождена.
var counter = 0; // 引用计数器 class BaseClass { init() { counter++; } deinit { counter--; } } var show: BaseClass? = BaseClass() print(counter) print(counter)
Выход выше выполнение программы:
1 1