迅速な破壊プロセス


デストラクターは、クラスのインスタンスが解放される直前に呼び出されます。キーワード deinit来标示析构函数,类似于初始化函数用init でマークしてください。デストラクターはクラス型に対してのみ機能します。


破棄プロセスの原則

Swiftは、リソースを解放する必要がなくなったインスタンスを自動的に解放します。

Swift は、自動参照カウント (ARC) を通じてインスタンスのメモリ管理を処理します。

通常、インスタンスがリリースされたときに手動でクリーンアップする必要はありません。ただし、独自のリソースを使用する場合は、追加のクリーンアップが必要になる場合があります。

たとえば、ファイルを開いてデータを書き込むカスタム クラスを作成する場合、クラス インスタンスが解放される前にファイルを閉じる必要がある場合があります。

構文

クラスの定義では、各クラスは最大 1 つのデストラクターを持つことができます。デストラクターはパラメーターをとらず、かっこなしで記述されます:

deinit {
    // 执行析构过程
}

var counter = 0;  // 引用计数器
class BaseClass {
    init() {
        counter++;
    }
    deinit {
        counter--;
    }
}

var show: BaseClass? = BaseClass()
print(counter)
show = nil
print(counter)

上記のプログラムの実行の出力結果は次のとおりです:

1
0

show = nil ステートメントが実行されると、計算機は 1 を減算し、ショーによって占有されていたメモリが解放されます。

var counter = 0;  // 引用计数器

class BaseClass {
    init() {
        counter++;
    }
    
    deinit {
        counter--;
    }
}

var show: BaseClass? = BaseClass()

print(counter)
print(counter)

上記のプログラムの実行の出力結果は次のとおりです:

1
1