load && initialize 浅析

load

  • 调用顺序:父类->子类->分类 (不会覆盖);
  • 多个分类情况下,compile sources <谁在前,先执行谁。多个分类都会被执行>;
  • 子类覆盖load方法,父类覆盖了仍然会被调用
  • 仅调用一次(采用的是函数指针),如果【AA load】则执行发送消息哪一套机制;
  • main前,所以尽管有锁,但仍然不安全。不建议在此初始化SDK的操作;
  • 通常情况仅在此做方法交换的动作,一旦覆盖了load,则该类一定会被提前加载。而非懒加载;

initialize

  • 调用顺序:父类->子类(如果有分类会覆盖“宿主类”);
  • 多个分类情况下,compile sources <谁在后,仅执行最后的一个(分类方法倒序添加)>;
  • 类初始化,会被调用一次。重复多次,会被调用多次;
  • main后,所以为安全操作;
  • 消息发送机制;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PS:子类、父类、分类A、分类B、全部覆盖了+load、+initialize;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值