應(yīng)用程序的啟動步驟
- main函數(shù)調(diào)用UIApplicationMain。
- UIApplicationMain創(chuàng)建了一個UIApplication
- UIApplicationMain創(chuàng)建了一個AppDelegate,再由UIApplication將AppDelegate指定為代理人
- UIApplicationMain加載Info.Plist文件(也就是工程文件的配置)
- 創(chuàng)建并發(fā)送消息啄清,將整個應(yīng)用程序加入到一個死循環(huán)中,只要這個應(yīng)用程序一直在運行增炭,這個循環(huán)就不會停止,通過這個循環(huán)校翔,我們可以檢測到觸摸弟跑,搖晃等事件
- 發(fā)送消息給application:didFinishLaunchingWithOptions:此時說明應(yīng)用程序已經(jīng)創(chuàng)建成功。
- 在application:didFinishLaunchingWithOptions:中我們創(chuàng)建一個window并將這個window顯示出來防症,注意:在xcode7以后我們需要指定window的根視圖控制器孟辑。如果是空模板的話就需要我們手動添加根視圖控制器了。
UIApplicationMain參數(shù)
/**
* UIApplicationMain
*
* @param argc 參數(shù)的個數(shù)
* @param argv 裝載函數(shù)的數(shù)組
* @param principalClassName 應(yīng)用程序?qū)ο蟮念惷║IApplication或其子類蔫敲,若是nil饲嗽,則默認使用UIApplication類名)
* @param delegateClassName 應(yīng)用程序delegate的類名(任何接收了UIApplicationDelegate的類)
*/
int UIApplicationMain(int argc, char *argv[], NSString * __nullable principalClassName, NSString * __nullable delegateClassName);
應(yīng)用程序的代理
- 告訴delegate應(yīng)用程序啟動即將完成,程序準備要運行(delegate執(zhí)行這個方法的時候要創(chuàng)建window對象奈嘿,將程序的內(nèi)容通過window顯示給用戶)
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
return YES;
}
- 告訴delegate應(yīng)用程序即將進入非活躍態(tài)(這時系統(tǒng)會幫我們貌虾,暫停游戲,timer等)在來電話的時候應(yīng)用程序就會進入非活躍態(tài)
-(void)applicationWillResignActive:(UIApplication *)application{
}
- 告訴delegate應(yīng)用程序已經(jīng)進入后臺(存儲用戶數(shù)據(jù)裙犹,釋放共享資源尽狠,停止timer等)
-(void)applicationDidEnterBackground:(UIApplication *)application{
}
- 告訴delegate應(yīng)用程序即將進入前臺(回復(fù)所有進入后臺時暫停的任務(wù))
-(void)applicationWillEnterForeground:(UIApplication *)application{
}
- 告訴delegate應(yīng)用程序已經(jīng)進入活躍態(tài)(重新執(zhí)行被暫停的任務(wù))
-(void)applicationDidBecomeActive:(UIApplication *)application{
}
-(void)applicationWillTerminate:(UIApplication *)application{
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者