美文网首页
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