如果你在一個(gè)UIViewController中重寫了這兩個(gè)類方法,那么你會(huì)在在這個(gè)控制器中發(fā)現(xiàn)一下現(xiàn)象:
1,相同之處:
(1)這兩個(gè)類方法在init之前就調(diào)用了
(2)在整個(gè)應(yīng)用app中無論你用到這個(gè)類多少次,這兩個(gè)類方法均只會(huì)被調(diào)用一次
2,不同之處:
(1)load是在initialize之前被調(diào)用
(2)更特別的是,如果你沒有用到你重寫的這個(gè)控制器.那你重寫的load類方法也會(huì)調(diào)用.換句話說,這個(gè)load方法是在didFinishLaunchingWithOptions方法之前就被調(diào)用了.(神奇)
3,用法:load類方法,歌沒有用過.只是用過initialize類方法.所以....
initialize類方法的一個(gè)金典應(yīng)用:
往往在一個(gè)應(yīng)用APP中,導(dǎo)航條控制器的導(dǎo)航條幾乎是統(tǒng)一的.再加上,一般情況一個(gè)應(yīng)用APP會(huì)重寫一個(gè)導(dǎo)航控制器類.那么initialize類方法就能出場了.比如:
+ (void)initialize {
NSLog(@"%s:%s",__FILE__,__func__);
//設(shè)置導(dǎo)航欄主題
UINavigationBar *navBar = [UINavigationBar appearance];
//接下來就可以對navBar坐各種統(tǒng)一的設(shè)置處理了.比如字體,背景....
}