簡(jiǎn)單總結(jié)一些,等到底層原理都理解的時(shí)候该酗,一切都會(huì)恍然大悟
+(void)load
load這個(gè)類方法,在程序運(yùn)行時(shí),Runtime會(huì)將所有的Class和Category加載到內(nèi)存中背捌,如果實(shí)現(xiàn)了load方法,這時(shí)洞斯,會(huì)調(diào)用類的load方法毡庆,通知我們Class或Category已經(jīng)被加載到內(nèi)存中。
為什么要自動(dòng)調(diào)用load方法呢烙如?
目的當(dāng)然是兩個(gè):
1.告訴我們程序員你要在里面寫一些代碼啦么抗,我調(diào)用的時(shí)候,順便幫你實(shí)現(xiàn)你的一些設(shè)置
2.一調(diào)用這個(gè)方法就意味著已經(jīng)把該類加載到內(nèi)存中了亚铁,起通知的作用
但要注意:
不要做對(duì)象的初始化操作
因?yàn)樵趍ain函數(shù)之前自動(dòng)調(diào)用蝇刀,load方法調(diào)用的時(shí)候使用者根本就不能確定自己要使用的對(duì)象是否已經(jīng)加載進(jìn)來(lái)了,所以千萬(wàn)不能在這里初始化對(duì)象
-(void)viewDidLoad
什么時(shí)候調(diào)用徘溢?
一旦控制器類進(jìn)行alloc init產(chǎn)生對(duì)象的時(shí)候吞琐,就會(huì)在內(nèi)存中分配一個(gè)空間,順便把view屬性也加載到對(duì)應(yīng)的內(nèi)存中然爆,起的作用也是兩個(gè)