GreekBank極客班-Objective-c 初始化器和析構(gòu)器

初始化器:

初始化器主要用于初始化對象實例或者類型,是一個特殊的函數(shù)。

對象初始化器:-(id)init可以重載多個

類型初始化器:+(void)initialize只能有一個

初始化對象實例時,init通常和alloc搭配使用。

init所做的事情可自行定義:

調(diào)用父類初始化器[super init](前置調(diào)用)

初始化當(dāng)前對象實例變量

而類型初始化器initialize負(fù)責(zé)類型級別的初始化,并在每個類使用前被系統(tǒng)自動調(diào)用,且每個進(jìn)程周期中,只能被調(diào)用一次;子類的initialize會自動調(diào)用父類的initialize(前置調(diào)用)

對象解構(gòu)器dealloc負(fù)責(zé)釋放對象擁有的動態(tài)資源:

自動實現(xiàn):ARC機(jī)制將對象屬性引用計數(shù)減持

手動實現(xiàn):釋放不受ARC管理的動態(tài)內(nèi)存,例如malloc分配

手動實現(xiàn):關(guān)閉非內(nèi)存資源,如文件句柄,網(wǎng)絡(luò)端口等

dealloc是由ARC根據(jù)對象引用計數(shù)規(guī)則,在使用內(nèi)存前,自動調(diào)用,且沒有手工調(diào)用。

子類的dealloc會自動調(diào)用父類的dealloc(后置調(diào)用)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容