在一個(gè)類的實(shí)例被釋放之前,析構(gòu)函數(shù)被立即調(diào)用。用關(guān)鍵字 deinit 來(lái)表示析構(gòu)函數(shù),類似于初始化函數(shù) init來(lái)標(biāo)示。析構(gòu)函數(shù)只適用于類類型。與 OC 中 dealloc 一樣。
過(guò)程原理
Swift 會(huì)自動(dòng)釋放不在需要的實(shí)例以釋放資源。
Swift 通過(guò)自動(dòng)引用計(jì)數(shù)(ARC)處理實(shí)例的內(nèi)存管理
通常當(dāng)你的實(shí)例被釋放時(shí)不需要手動(dòng)的去清理,但是,當(dāng)使用自己的資源時(shí),你可能需要進(jìn)行一些額外的清理。例如:如果創(chuàng)建了一個(gè)自定義的類打開(kāi)一個(gè)文件,并寫(xiě)入一些數(shù)據(jù),你可能需要在類實(shí)例釋放之前關(guān)閉文件。
在類的定義中,每個(gè)類最多只能有一個(gè)析構(gòu)函數(shù)。析構(gòu)函數(shù)不帶任何參數(shù),在寫(xiě)法上不帶括號(hào):
deinit {
// 執(zhí)行析構(gòu)過(guò)程 釋放資源
}