美文网首页
Objective-C中的load initialize方法

Objective-C中的load initialize方法

作者: 百思不得Ting姐 | 来源:发表于2017-06-08 16:44 被阅读0次

    看了好多文章觉得总结的不是我想要的,斗胆再总结一下

    load

    1、类被系统添加到runtime之前调用;

    2、调用顺序:父类先于子类,子类先于category(category里的实现不会覆盖原类实现);

    initialize

    1、向类发送第一个消息之前调用(系统runtime自动调用的load不算);

    2、会先调用父类的实现,再调用子类的实现,如果子类没有实现,还是调用继承自父类的。可以看出,父类的实现可能被多次调用。

    3、系统对每个类只会发送一次消息(调用);

    4、如果category中实现了initialize方法,会覆盖原先类中已经有的实现(如果有的话。没有就充当该类的实现);

    load 、initialize相同点

    1、自定义实现中都不需要显示调用父类的实现;

    2、在不考虑开发者主动使用的情况下,系统最多会调用一次;

    3、父类先于子类调用;

    应用:

    load中可以做method swizzling;

    initialize可以初始化全局变量;

    相关文章

      网友评论

          本文标题:Objective-C中的load initialize方法

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