initialize和load的區別在於:load是只要類所在檔案被引用就會被呼叫,而initialize是在類或者其子類的第乙個方法被呼叫前呼叫。所以如果類沒有被引用進專案,就不會有load呼叫;但即使類檔案被引用進來,但是沒有使用,那麼initialize也不會被呼叫。
它們的相同點在於:方法只會被呼叫一次。都是類方法(其實這是相對runtime來說的)。
initwithoder 是當從nib檔案中載入物件的時候會呼叫,比如你的view來自nib那麼就會呼叫這個view的這個函式。(由框架呼叫)
initwithframe (是由使用者呼叫,來初始化物件的。)
init:方法
在init方法中例項化必要的物件(遵從lazyload思想)
init方法中初始化viewcontroller本身
loadview:方法
這是當沒有正在使用nib檢視頁面,子類將會建立自己的自定義檢視層。絕不能直接呼叫。
如果手工維護views,必須過載重寫該方法。
當view需要被展示而它卻是nil時,viewcontroller會呼叫該方法。
loadview和ib構建view
你在控制器中實現了loadview方法,那麼你可能會在應用執行的某個時候被記憶體管理控制呼叫。 如果裝置記憶體不足的時候, view 控制器會收到didreceivememorywarning的訊息。 預設的實現是檢查當前控制器的view是否在使用。 如果它的view不在當前正在使用的view hierarchy裡面,且你的控制器實現了loadview方法,那麼這個view將被release, loadview方法將被再次呼叫來建立乙個新的view。
viewdidload:方法
在檢視載入後被呼叫:
如果是在**中建立的檢視載入器,他將會在loadview方法後被呼叫;
如果是從nib檢視頁面輸出,他將會在檢視設定好後後被呼叫。
過載重寫該方法以進一步定製view
在iphone os 3.0及之後的版本中,還應該過載重寫viewdidunload來釋放對view的任何索引
viewdidload後呼叫資料model
方法called when the view is about to made visible. default does nothing
檢視即將可見時呼叫。預設情況下不執行任何操作
執行順序:
先執行init
、然後執行
viewdidload
,然後是
最後是,這樣檢視就建立好了,當檢視消失或者被覆蓋的時候先
這樣一來檢視就消失了
當模擬記憶體警告的時候:
程式會執行viewwillunload最後是執行viewdidunload(現在這兩個方法都被廢棄了)
其實當檢視a切換到檢視b的真正的流程並不是按上面的流程跑下來的,
正確的順序流程應該是:
1,b檢視viewdidload
類初始化 例項初始化 方法重寫
乙個類要建立例項需要先載入並初始化該類 乙個子類要初始化需要先初始化父類 乙個類初始化就是執行 clinit 方法 例項初始化就是執行 init 方法 哪些方法不可以被重寫 物件的多型性 父類 author barrylee 2018年11月10日 下午3 52 33 public class fa...
初始化 大眾車型 天窗初始化方法
問題描述 使用者抱怨天窗有時不能關閉,在開啟後不能完全關閉,或者起翹後不能完全關 閉。產生原因 1 天窗本身具有防夾功能,當天窗執行時的阻力與它初始化時的記憶不同的 時候,它能夠自動控制防夾功能是否啟用,以免給人體造成傷害。2 天窗在在維修或更換完畢後,需要做初始化設定 天窗在在使用一段時間 後由於...
Swift初始化方法
swift中有兩類初始化方法 designated 指定 和convenience 便利 初始化方法。convenience初始化方法必須呼叫同乙個類 self 中的designated初始化。init parameters convenience init parameters 特別要注意構造器的...