swift學習記錄(析構器)

2021-07-09 03:21:32 字數 490 閱讀 8337

析構器只適用於類型別,當乙個類的例項被釋放之前,析構器會被立即呼叫。析構器用關鍵字deinit 來標示。在類中,每個類只能有乙個析構器。

基本語法

deinit
析構過程原理

swift 通過自動引用計數(arc)來管理記憶體,會自動釋放不在需要的類來釋放資源。通常例項被釋放時不需要手動去釋放資源。但當使用自己的資源時

需要進行一些額外的清理。例如,如果建立了乙個自定義的類來開啟乙個檔案,並寫入一些資料,可能需要在類例項被釋放之前手動去關閉該檔案。

class

person

deinit

}var person:person? = person(name: "張三",age: 20)

person = nil

//呼叫了析構器,釋放記憶體

例項被賦值為 nil ,表示需要釋放記憶體,析構器在釋放記憶體之前呼叫,然後在釋放記憶體。

學習Swift 析構過程

析構器只適用於類型別,當乙個類的例項被釋放之前,析構器會被立即呼叫。析構器用關鍵字deinit來標示,類似於構造器要用init來標示。swift 會自動釋放不再需要的例項以釋放資源,swift 通過自動引用計數 arc 處理例項的記憶體管理。通常當你的例項被釋放時不需要手動地去清理。但是,當使用自己...

swift構造器和析構器

1.構造器重載 函式有相同的名字 引數列表不同或返回值型別不同,或外部引數名不同 橫向 類似於值型別構造器 發生在同一類內部,這種構造器稱為便利構造器 在構造器前面加上了convenience關鍵字 向上 發生在繼承情況下,在子類構造過程中要先呼叫父類構造器,初始化父類的儲存屬性,這種構造器稱為指定...

析構 Swift學習筆記(十八)

注 本文為自己學習the swift programming language的筆記,其中的例子為引用原書和其他博文或自己原創的。每個例子都會批註一些實踐過程中的經驗或思考總結。1.基礎 析構過程 deinitialization 由析構函式 deinitializer 完成,類的例項在被 資源之前...