可能重複:
alloc and init what do they actually doalloc和init做了什麼?
,我們做這樣的代碼[類名的alloc]初始化],因此實際發生的alloc和發生的事情在初始化,我的理解是,頁頭會創建該類的實例併爲該實例分配大塊內存,那麼init的用法是什麼?
在此先感謝。
可能重複:
alloc and init what do they actually doalloc和init做了什麼?
,我們做這樣的代碼[類名的alloc]初始化],因此實際發生的alloc和發生的事情在初始化,我的理解是,頁頭會創建該類的實例併爲該實例分配大塊內存,那麼init的用法是什麼?
在此先感謝。
頁頭:它分配爲您創建的對象的內存,增加了保留計數
INIT:它初始化對象,您創建,自定義值和屬性,如果你爲他們提供,否則具有默認值和屬性
那麼init有什麼用?
簡單:它做什麼alloc不做(因爲它不能做)。它初始化自定義實例變量,將屬性設置爲默認值,等等......
alloc方法進行分配並將保留計數增加1,無論由+ alloc返回什麼都必須在某處返回。
init負責分配後初始化對象。消耗消息對象的保留計數併產生保留計數爲+1的對象(不是1,而是「加1」);從init返回的結果必須釋放才能正確管理。
順便說一句,+ alloc是一個類方法,-init是一個實例方法