首页 > 其他 > 详细

054*: load、initialize 区别

时间:2020-12-28 14:21:43      阅读:25      评论:0      收藏:0      [点我收藏+]

1:Category中有load方法吗?load方法是什么时候调用的?load 方法能继承吗?

  • 有load方法
  • load方法在runtime加载类、分类的时候调用
  • load方法可以继承,但是一般情况下不会主动去调用load方法,都是让系统自动调用

2:initialize方法如何调用,以及调用时机

  • 当类第一次收到消息的时候会调用类的initialize方法
  • 是通过 runtime 的消息机制 objc_msgSend(obj,@selector()) 进行调用的
  • 优先调用分类的 initialize, 如果没有分类会调用 子类的,如果子类未实现则调用 父类的

3:load、initialize方法的区别什么?它们在category中的调用的顺序?以及出现继承时他们之间的调用过程?

  • load 是类加载到内存时候调用, 优先父类->子类->分类
  • initialize 是类第一次收到消息时候调用,优先分类->子类->父类,会覆盖子类和父类的方法。只执行一次。
  • 同级别和编译顺序有关系
  • load 方法是在 main 函数之前调用的

054*: load、initialize 区别

原文:https://www.cnblogs.com/zyzmlc/p/14201006.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!