美文网首页
+load()、+initialize(),在类中、分类中调用顺

+load()、+initialize(),在类中、分类中调用顺

作者: 达摩君 | 来源:发表于2018-09-12 22:31 被阅读15次
  • +load()在程序启动的时候都会调用一次,不需要调用这个类或者分类
  • +initialize()只在调用这个类的时候会调用,只会调用一次,如果是子类继承父类,先调用父类的initialize,再调用自己的,方法中不需要写[super initialize].
  • +initialize()如果分类中也写了,会先调用父类,再调用分类中的,不会调用自己类的initialize方法。(原理:因为有分类方法的时候,原有的class方法内存指针会后移分类方法的内存大小,然后分类方法会复制到后移的内存空隙中,方法调用的时候相当于先查找到的是分类方法,meta-class也是一样的逻辑。所以相同的方法名,先执行分类方法。但为什么+load()都会执行呢,因为它是直接找到内存进行调用,而initialize是通过msg_send消息发送调用的(isa))。

相关文章

  • +load()、+initialize(),在类中、分类中调用顺

    +load()在程序启动的时候都会调用一次,不需要调用这个类或者分类 +initialize()只在调用这个类的时...

  • Load 与 Initialize方法

    Load 与 Initialize方法 1. load方法的调用顺序 大的顺序是 类 > 分类。 在类中: 各个分...

  • laod和initialize

    laod和initialize +load +load方法会在runtime加载类、分类时调用,每个类、分类的+l...

  • Load和Initialize实现原理

    Load和Initialize实现原理 +Load实现原理 +load方法会在runtime加载类、分类时调用 每...

  • load与initialize对比

    load +load方法会在runtime加载类、分类时调用 每个类、分类的+load,在程序运行过程中只调用一次...

  • 技术点

    1、oc中 load 和initialize 方法的异同? 连接 load 方法: 对于每个类(class)及分类...

  • +load方法

    ?+load会在runtime加载类,分类时调用?每个类,分类的+load,在程序运行过程中只调用一次?调用顺序1...

  • + load()方法

    调用顺序 +load方法会在runtime加载类、分类时调用 每个类、分类的+load,在程序运行过程中只调用一次...

  • Category中+load +initialize调用方法简单

    +load方法会在runtime加载类,分类的时候调用 每个类,分类的+load 在程序运行过程中只调用一次 调用...

  • +load和+initialize解密

    +load方法 +load方法会在runtime加载类、分类时调用 每个类、分类的+load方法,在程序运行过程中...

网友评论

      本文标题:+load()、+initialize(),在类中、分类中调用顺

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