? ? 程序啟動(dòng)時(shí)執(zhí)行main函數(shù),在main函數(shù)當(dāng)中有以下操作.
?int main(int argc, char * argv[]) {
? ? ? ? ? ? @autoreleasepool {
前兩個(gè)參數(shù)不用在意,是系統(tǒng)做的事情,我們?cè)谶@只需關(guān)注第三個(gè)第四個(gè)參數(shù)的含義
第三個(gè)參數(shù):UIApplication類名或者子類的名稱 nil == @"UIApplication"
第四個(gè)參數(shù):UIApplication的代理的代理名稱
NSStringFromClass:把類名轉(zhuǎn)化字符串
NSStringFromClass好處:1.有提示功能 2.避免輸入錯(cuò)誤
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
程序的啟動(dòng)流程
1.執(zhí)行Main
2.執(zhí)行UIApplicationMain函數(shù).
3.創(chuàng)建UIApplication對(duì)象,并設(shè)置UIApplicationMain對(duì)象的代理.
UIApplication的第三個(gè)參數(shù)就是UIApplication的名稱,如果指定為nil,它會(huì)默認(rèn)為UIApplication.
UIApplication的第四個(gè)參數(shù)為UIApplication的代理.
4.開啟一個(gè)主運(yùn)行循環(huán).保證應(yīng)用程序不退出.
5.加載info.plist.加載配置文件.判斷一下info.plist文件當(dāng)中有沒有Main storyboard file base name
里面有沒有指定storyboard文件,如果有就去加載info.plist文件,如果沒有,那么應(yīng)用程序加載完畢.