iOS UIView的生命週期

2021-07-22 06:11:34 字數 1237 閱讀 1887

一、 介面載入大體流程:

(loadview/nib)檔案來載入view到記憶體-->viewdidload函式進一步初始化這些view-->記憶體不足時, 呼叫viewdidunload函式釋放views-->當需要使用view時又回到第一步

loadview:

永遠不要主導呼叫這個函式。

viewcontroller 會在self.view的屬性(property)被請求時並且self.view值為nil時呼叫這個函式。如果你手動建立view,你應該過載這個函式,切不要在過載的時候呼叫[super loadview]。

viewdidload:

這個函式的作用主要是讓你可以進一步的初始化你的views。

viewdidload通常負責的是view及其子view被載入進記憶體之後的資料初始化的工作,即檢視的資料部分的初始化。

viewdidunload:

這個函式時viewdidload的對立函式。在程式記憶體欠缺時,這個函式被controller呼叫,來釋放它的view以及view相關的物件。由於controller通常儲存著view以及相關的object的引用,所以你必須使用這個函式來放棄這些物件的所有權以便記憶體**,但不要釋放那些難以重建的資料。

檢視即將可見時呼叫,預設情況下不執行任何操作。

檢視已完全過渡到螢幕上時呼叫。

檢視將要被駁回時呼叫,覆蓋或以其他方式隱藏,預設情況下不執行任何操作。

檢視被駁回後呼叫,覆蓋或以其他方式隱藏。預設情況下不執行任何操作。

didreceivememorywarning:

當程式記憶體過度時,系統會呼叫該方法。

二、controller和view的生命週期

這裡指的view是指controller的view。它作為controler的屬性,生命週期在controller的生命週期內。

就是說你的controller不能在view釋放前就釋放了。

當你alloc並init了乙個viewcontroller時,這個viewcontroller應該是還沒有建立view的。viewcontroller的view是使用了lazyinit方式建立,就是說你呼叫的view屬性的getter:[self view]。

在getter裡會先判斷view是否建立,如果沒有建立,那麼會呼叫loadview來建立view。loadview完成時會繼續呼叫viewdidload。

loadview和viewdidload的乙個區別就是:loadview時還沒有view。而viewdidload時view已經建立好了。

React 生命週期 生命週期方法

生命週期 掛載 更新 解除安裝 元件被建立 執行初始化 並被掛載到dom中,完成元件的第一次渲染 constructor props getderivedstatefromprops props,state render componentdidmount 元件被建立時會首先呼叫元件的構造方法,接受...

actived生命週期 Vuejs 生命週期

每個 vue 例項在被建立時都要經過一系列的初始化過程。如需要設定資料監聽 編譯模板 將例項掛載到 dom 並在資料變化時更新 dom 等。同時在這個過程中也會執行一些叫做生命週期鉤子的函式,這給了使用者在不同階段新增自己的 的機會。乙個 vue 例項 我們建立乙個 vue 例項,並在每個階段驗證 ...

vue的生命週期,什麼是生命週期

簡而言之 建立前 後,載入前 後,更新前 後,銷毀前 後 beforecreate 建立前 在資料觀測和初始化事件還未開始 created 建立後 完成資料觀測,屬性和方法的運算,初始化事件 beforemount 載入前 在掛載開始之前被呼叫,相關的render函式首次被呼叫。mounted 載入...