CSDN連接地址:http://write.blog.csdn.net/postlist
最近在整理東西例诀,所以就想著把之前在CSDN博客上寫的幾篇博客搬過來整理到一塊余佃,希望能方便大家查看。
main.m文件中的方法簡介
如上圖所示,該方法為Xcode中的main.m文件中默認(rèn)的一個方法诸蚕,我們只要創(chuàng)建一個工程它都會出現(xiàn)在我們的工程中,可能你會好奇這個方法是干什么的那么下邊就來分析一下它坏瘩。
這個默認(rèn)的方法為iOS程序的入口漠魏,iOS程序只要一運行便從這個main.m函數(shù)開始執(zhí)行,但是在main函數(shù)中我們其實只能看到一個方法哪自,這個方法內(nèi)部是一個消息循環(huán)(相當(dāng)于一個死循 環(huán))禁熏,因此運行到這個方法UIApplicationMain之后程序不會自動退出,而只有當(dāng)用戶手動關(guān)閉程序這個循環(huán)才結(jié)束瞧毙。
從上邊可以看出該方法有四個參數(shù)分別代表的意思為:
1. argc 參數(shù)個數(shù)
2. argv 參數(shù)內(nèi)容
3. 第三個參數(shù)為UIApplication類(或子類)字符串,這個參數(shù)如果默認(rèn)為nil就代表默認(rèn)為UIApplication類矩动,如果為nil則等價于NSStringFromClass([UIApplication class])释漆,由于UIApplication是單例模式,所以一個應(yīng)用程序只有一個UIApplication對象或子對 象檀训;這個參數(shù)必須是UIApplication或其子類的名字享言,它代表當(dāng)前iPhone程序本身,這個程序會解讀info.plist文件獲取配置信息荧琼,負(fù)責(zé)應(yīng)用程序的整個狀態(tài),比如包括的狀態(tài)有:(啟動,進(jìn)入后臺堰乔,從后臺激活脐恩,應(yīng)用程序間的跳轉(zhuǎn) 等等 )
4. 第四個參數(shù):NSStringFromClass([AppDelegate class])的作用是獲取類對象 創(chuàng)建一個UIApplication的代理對象,也就應(yīng)用程序的代理苟翻,負(fù)責(zé)控制程序的運行和監(jiān)聽整個應(yīng)用程序生命周期的各個事件骗污,當(dāng)UIApplication運行過程中引發(fā)了某個事件之后會調(diào)用代理中對應(yīng)的方法;NSStringFromClass 其實就是從一個類獲取字符串诅炉,類的描述信息屋厘。
AppDelegate中的代理方法簡介
AppDelegate就是一個應(yīng)用程序的代理類,AppDelegate在程序創(chuàng)建的時候iOS程序已經(jīng)幫我們創(chuàng)建好了澈魄,AppDelegate這個代理對象是通過[AppDelegate class]自動創(chuàng)建的仲翎,[AppDelegate class]返回的是lei類的描述信息,實際上就是返回了一個類對象鲫构。(溫馨提示一下:類和類對象是有一定的區(qū)分條件的玫坛,這個大家可以私地下去看一看runtime方面的知識,這里不做過多解釋)
AppDelegate這個類能成為iOS應(yīng)用程序的代理對象是因為遵守了UIApplicationDelegate協(xié)議炕吸,下面就針對協(xié)議中的一些方法進(jìn)行簡單介紹一下勉痴。
1、- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}
該方法是iOS平臺相關(guān)設(shè)置完之后開始載入時候調(diào)用的方法瀑罗, 該方法是用界面的入口, 如果希望在應(yīng)用程序一開始的時候劣像,做些事情摧玫,可以在該方法中執(zhí)行,就UIApplicationDelegate協(xié)議中方法而言程序一運行進(jìn)入的時候先執(zhí)行該方法诬像。
2、- (void)applicationDidBecomeActive:(UIApplication *)application {}
執(zhí)行完上邊的方法會執(zhí)行該方法,該方法的的作用是當(dāng)應(yīng)用程序已經(jīng)進(jìn)入活動狀態(tài)時執(zhí)行癞揉,它與
- (void)applicationWillResignActive:(UIApplication *)application {}
方法是相反的
---_
3溺欧、 **- (void)applicationWillResignActive:(UIApplication *)application {}
**
當(dāng)應(yīng)用程序?qū)⒁M(jìn)入非活動狀態(tài)時執(zhí)行, 比如來電話,從后臺進(jìn)入到程序時調(diào)用芥牌。
4聂使、** - (void)applicationDidEnterBackground:(UIApplication *)application {}
**
應(yīng)用程序已經(jīng)進(jìn)入到后臺的時候會調(diào)用該方法。
5弃理、 - (void)applicationWillEnterForeground:(UIApplication *)application {}
應(yīng)用程序?qū)⒁氐角芭_時候調(diào)用屎蜓。
6、- (void)applicationWillTerminate:(UIApplication *)application {}