+(void)load;
當(dāng)類對(duì)象被引入項(xiàng)目時(shí), runtime會(huì)向每一個(gè)類對(duì)象發(fā)送load消息
load方法會(huì)在每一個(gè)類甚至分類被引入時(shí)僅調(diào)用一次,調(diào)用的順序:父類優(yōu)先于子
類,子類優(yōu)先于分類
由于load方法會(huì)在類被import時(shí)調(diào)用一次,而這時(shí)往往是改變類的行為的最佳時(shí)
機(jī),在這里可以使用例如method swizlling來(lái)修改原有的方法
load方法不會(huì)被類自動(dòng)繼承
+(void)initialize;
也是在第一次使用這個(gè)類的時(shí)候會(huì)調(diào)用這個(gè)方法,也就是說(shuō)initialize也是懶加載總結(jié):
在Objective-C中,runtime會(huì)自動(dòng)調(diào)用每個(gè)類的這兩個(gè)方法
+load會(huì)在類初始加載時(shí)調(diào)用
+initialize會(huì)在第一次調(diào)用類的類方法或?qū)嵗椒ㄖ氨徽{(diào)用
這兩個(gè)方法是可選的,且只有在實(shí)現(xiàn)了它們時(shí)才會(huì)被調(diào)用兩者的共同點(diǎn):兩個(gè)方法都只會(huì)被調(diào)用一次