初始化器:
初始化器主要用于初始化對象實例或者類型,是一個特殊的函數(shù)。
對象初始化器:-(id)init可以重載多個
類型初始化器:+(void)initialize只能有一個
初始化對象實例時,init通常和alloc搭配使用。
init所做的事情可自行定義:
調(diào)用父類初始化器[super init](前置調(diào)用)
初始化當前對象實例變量
而類型初始化器initialize負責類型級別的初始化,并在每個類使用前被系統(tǒng)自動調(diào)用,且每個進程周期中,只能被調(diào)用一次;子類的initialize會自動調(diào)用父類的initialize(前置調(diào)用)
對象解構器dealloc負責釋放對象擁有的動態(tài)資源:
自動實現(xiàn):ARC機制將對象屬性引用計數(shù)減持
手動實現(xiàn):釋放不受ARC管理的動態(tài)內(nèi)存,例如malloc分配
手動實現(xiàn):關閉非內(nèi)存資源,如文件句柄,網(wǎng)絡端口等
dealloc是由ARC根據(jù)對象引用計數(shù)規(guī)則,在使用內(nèi)存前,自動調(diào)用,且沒有手工調(diào)用。
子類的dealloc會自動調(diào)用父類的dealloc(后置調(diào)用)