Swift Proces destructor
Przed instancją klasy zostanie zwolniony, destruktora nazywa się natychmiast. Wpisz słowo deinit
oznaczyć destruktora użyć podobnej funkcji inicjalizacji init
aby zaznaczyć. Destruktory odnosi się tylko do typów klasowych.
Zasada Proces Destructor
Swift automatycznie zwolnić instancja nie jest już konieczne w celu uwolnienia zasobów.
Swift Automatic Reference Counting przez (ARC) obsługuje przypadki zarządzania pamięcią.
Zwykle, gdy nie trzeba ręcznie instancją jest uwalniana do czyszczenia. Jednak podczas korzystania z własnych zasobów, może trzeba zrobić jakieś dodatkowe sprzątanie.
Na przykład, jeśli utworzyć klasę niestandardową, aby otworzyć plik i napisać jakieś dane, może trzeba być zwolniony przed instancją klasy, aby zamknąć plik.
gramatyka
W definicji klasy, każda grupa może mieć co najwyżej jeden destructor. Destructor bez żadnych parametrów, bez nawiasów w brzmieniu:
deinit { // 执行析构过程 }
Przykłady
var counter = 0; // 引用计数器 class BaseClass { init() { counter++; } deinit { counter--; } } var show: BaseClass? = BaseClass() print(counter) show = nil print(counter)
Wyjście powyżej wykonywanie programu jest:
1 0
Kiedy show = nil stwierdzenie jest wykonywany, kalkulator minus 1, Pokaż pamięć zostanie zwolniona.
var counter = 0; // 引用计数器 class BaseClass { init() { counter++; } deinit { counter--; } } var show: BaseClass? = BaseClass() print(counter) print(counter)
Wyjście powyżej wykonywanie programu jest:
1 1