load与viewDidLoad的调用时机

简单总结一些,等到底层原理都理解的时候,一切都会恍然大悟

+(void)load

load这个类方法,在程序运行时,Runtime会将所有的Class和Category加载到内存中,如果实现了load方法,这时,会调用类的load方法,通知我们Class或Category已经被加载到内存中。

为什么要自动调用load方法呢?

目的当然是两个:

1.告诉我们程序员你要在里面写一些代码啦,我调用的时候,顺便帮你实现你的一些设置

2.一调用这个方法就意味着已经把该类加载到内存中了,起通知的作用

但要注意:

不要做对象的初始化操作

因为在main函数之前自动调用,load方法调用的时候使用者根本就不能确定自己要使用的对象是否已经加载进来了,所以千万不能在这里初始化对象

-(void)viewDidLoad

什么时候调用?

一旦控制器类进行alloc init产生对象的时候,就会在内存中分配一个空间,顺便把view属性也加载到对应的内存中,起的作用也是两个

你可能感兴趣的:(load与viewDidLoad的调用时机)