-
Swift 會自動(dòng)釋放不再需要的實(shí)例以釋放資源
- Swift 通過自動(dòng)引用計(jì)數(shù)(ARC)處理實(shí)例的內(nèi)存管理
- 當(dāng)引用計(jì)數(shù)為0時(shí),系統(tǒng)會自動(dòng)調(diào)用析構(gòu)函數(shù)(不可以手動(dòng)調(diào)用)
- 通常在析構(gòu)函數(shù)中釋放一些資源(如移除通知等操作)、如果創(chuàng)建了一個(gè)自定義的類來打開一個(gè)文件杰扫,并寫入一些數(shù)據(jù)队寇,你可能需要在類實(shí)例被釋放之前手動(dòng)去關(guān)閉該文件
析構(gòu)函數(shù)的寫法
deinit {
// 執(zhí)行析構(gòu)過程
}
示例練習(xí)
class Person {
var name : String
var age : Int
init(name : String, age : Int) {
self.name = name
self.age = age
}
deinit {
print("Person-deinit")
}
}
var p : Person? = Person(name: "why", age: 18)
p = nil