最近在研究騰訊直播,看了騰訊的隨心播Demo,突然感覺看不懂了,子類中命名沒有調用方法,但是卻明顯執行了方法中的代碼,一點一點追尋源頭,發現在父類中執行了方法,但是父類根本就沒有實例化,沒有創建父類的實例,為什么會執行父類中的方法呢?
通過demo實驗了一下這個另類的機制,發現一個有趣的東西,以前從來沒有試過還能這樣做:(所繼承的都是控制器,其他類沒有試過)
建立三個類,繼承關系的類:Son,Sun,SunSun
當調用SunSun的時候,發現Son和Sun、SunSun的viewDidLoad方法都執行,而且是順序執行的,從Son,Sun,SunSun依次執行。
屏幕快照 2016-09-07 上午9.55.55.png
類似:viewDidAppear等方法,生命周期的方法都是順序執行了一遍。
這種機制的好處就是,只需要在父類中調用一次方法,創建子類的時候只要重寫方法,就會直接執行,而不需要在聲明周期方法里再執行一次。
例如:添加view的方法,只需要在父類中調用一次,在子類中只需要重寫添加view的方法即可,而不需要在viewDidLoad 再調用一次。