新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
講解一下Swift中的析構(gòu)過(guò)程
析構(gòu)器只適用于類(lèi)類(lèi)型,當(dāng)一個(gè)類(lèi)的實(shí)例被釋放之前,析構(gòu)器會(huì)被立即調(diào)用。析構(gòu)器用關(guān)鍵字deinit來(lái)標(biāo)示,類(lèi)似于構(gòu)造器用init來(lái)標(biāo)示。

語(yǔ)法
在類(lèi)的定義中,每個(gè)類(lèi)最多只能有一個(gè)析構(gòu)函數(shù)。析構(gòu)函數(shù)不帶任何參數(shù),在寫(xiě)法上不帶括號(hào):
deinit {
// 執(zhí)行析構(gòu)過(guò)程
}
實(shí)例
var counter = 0; // 引用計(jì)數(shù)器
class BaseClass {
init() {
counter += 1;
}
deinit {
counter -= 1;
}
}
var show: BaseClass? = BaseClass()
print(counter)
show = nil
print(counter)
以上程序執(zhí)行輸出結(jié)果為:
1
0
當(dāng) show = nil 語(yǔ)句執(zhí)行后,計(jì)算器減去 1,show 占用的內(nèi)存就會(huì)釋放。
var counter = 0; // 引用計(jì)數(shù)器
class BaseClass {
init() {
counter += 1;
}
deinit {
counter -= 1;
}
}
var show: BaseClass? = BaseClass()
print(counter)
print(counter)
以上程序執(zhí)行輸出結(jié)果為:
1
1
本文名稱(chēng):講解一下Swift中的析構(gòu)過(guò)程
本文網(wǎng)址:http://www.5511xx.com/article/ccigopi.html


咨詢(xún)
建站咨詢(xún)
