iOS 对于 Load 方法的错误认知!

本文是练习打字而作,如有疑问,请联系我,第一时间删除。

首先声明一点,这篇文章可能是因为我主管的错误理解导致的,可能是我对网上其他博客理解有误,假如确实这样,很抱歉,可在评论中与我探讨,我搞明白了会把此简书删除的,谢谢!

一、错误的认知
直接上重点,之前对于Load的认知是这样的,或许是看的博客或者订阅号或者一些其他途径,总之对于他的加载方式是这样理解的:
Load是只要类所在文件被引用就会被调用,如果类没有被引用进项目,就不会有load调用;
我理解的被引用,指的是引用实现Load方法的头文件,即.h,加入这里就理解错了,那就是错怪各位大神了...下面就不用看了

二、错误发现过程及测试

之前写的一篇博客《iOS MVVM+RAC 从框架到实战》中有对APPDelegte的优化如下;

当类对象被引入项目时,runtime会向每一个类对象发送load消息,load方法还是非常神奇的,因为它会在每一个类甚至分类被引入时仅调用一次,调用的顺序是父类优先于子类,子类优先于分类,而且load方法不会被类自动继承,每一个类中的load方法都不需要像viewDidLoad方法一样调用父类的方法

三、正确的认知

iOS中的load方法会在加载类的时候就被调用,这个加载不是指引用,而是APP指在启动的时候就会加载所以得类,并调用每个类的实现了的+load方法,他是会在main()函数之前被调用的!所以,这种情况下,只要你新建的类在项目中,并且实现了Load方法,那么一定会被调用,而且调用的非常早!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容