美文网首页
+(void)load; +(void)initialize;有

+(void)load; +(void)initialize;有

作者: 0fbf551ff6fb | 来源:发表于2016-11-28 08:39 被阅读0次

+(void)load;

当类对象被引入项目时, runtime会向每一个类对象发送load消息

load方法会在每一个类甚至分类被引入时仅调用一次,调用的顺序:父类优先于子

类,子类优先于分类

由于load方法会在类被import时调用一次,而这时往往是改变类的行为的最佳时

机,在这里可以使用例如method swizlling来修改原有的方法

load方法不会被类自动继承

+(void)initialize;

也是在第一次使用这个类的时候会调用这个方法,也就是说initialize也是懒加载总结:

在Objective-C中,runtime会自动调用每个类的这两个方法

+load会在类初始加载时调用

+initialize会在第一次调用类的类方法或实例方法之前被调用

这两个方法是可选的,且只有在实现了它们时才会被调用两者的共同点:两个方法都只会被调用一次

相关文章

网友评论

      本文标题:+(void)load; +(void)initialize;有

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