美文网首页iOS面试题
iOS基础知识(二)load、initialize的区别

iOS基础知识(二)load、initialize的区别

作者: iOS小洁 | 来源:发表于2020-12-11 17:16 被阅读0次

    一个是加载,一个是初始化

    Load是在runtime加载类,分类的时候调用的

    每个类,分类的load在程序运行中只会调用一次

    调用顺序是先调用类的load,按编译顺序,调用子类的load之前会调用父类的load

    再调用分类load,也是按照编译先后顺序调用

    Load是根据方法地址直接调用的,并不是经过objc_msgSend函数调用

    Initalize是在类第一次接收到消息的时候调用的,

    调用顺序是先父类再子类

    每个类初始化一次,但是父类的initalize会调用多次

    Initalize 是通过objc_msgSend调用的

    子类没有实现会调用父类的,(父类的initalize会调用多次)

    分类如果实现了,会覆盖类本身的

    相关文章

      网友评论

        本文标题:iOS基础知识(二)load、initialize的区别

        本文链接:https://www.haomeiwen.com/subject/dldqgktx.html