最近在研究腾讯直播,看了腾讯的随心播Demo,突然感觉看不懂了,子类中命名没有调用方法,但是却明显执行了方法中的代码,一点一点追寻源头,发现在父类中执行了方法,但是父类根本就没有实例化,没有创建父类的实例,为什么会执行父类中的方法呢?
通过demo实验了一下这个另类的机制,发现一个有趣的东西,以前从来没有试过还能这样做:(所继承的都是控制器,其他类没有试过)
建立三个类,继承关系的类:Son,Sun,SunSun
当调用SunSun的时候,发现Son和Sun、SunSun的viewDidLoad方法都执行,而且是顺序执行的,从Son,Sun,SunSun依次执行。
类似:viewDidAppear等方法,生命周期的方法都是顺序执行了一遍。
这种机制的好处就是,只需要在父类中调用一次方法,创建子类的时候只要重写方法,就会直接执行,而不需要在声明周期方法里再执行一次。
例如:添加view的方法,只需要在父类中调用一次,在子类中只需要重写添加view的方法即可,而不需要在viewDidLoad 再调用一次。