iOS +load和+initialize理解

2018-08-31  本文已影响4人  科24

+load

每个类或对应的分类的+load方法,在程序运行的过程中只会被调用一次。

+load方法的调用顺序

+initialize

+initialize方法会在类第一次收到消息的时候调用

+initialize方法的调用顺序

先调用父类的+initialize方法,在调用子类的+initialize方法,如果分类实现+initialize,就会覆盖类本身的+initialize

+initialize与+load方法的区别

1.+initialize是通过方法objc_msgSend方法调用,+load方法直接根据方法地址直接调用。
2.+initialize如果子类没有实现这个方法,会调用父类的+initialize方法,因此父类的+initialize可能会被调用多次
3.如果分类实现了+initialize,就会覆盖类中的+initialize

上一篇下一篇

猜你喜欢

热点阅读