iPhone應用程序中生命周期詳解
iPhone應用程序中生命周期詳解是本文要介紹的內(nèi)容,不多說,直接進入本文的話題。任何程序的生命周期都是指從程序加載到程序結束這一短時間。在iPhone中,用戶通過點擊主頁面上的程度圖標啟動一個程序。點擊后,系統(tǒng)會顯示一個過渡的畫面然后調(diào)用main()函數(shù)來加載程序。
從這一刻開始,大量的初始化工作都交給了UIKit,它加載程序的用戶界面并啟動事件循環(huán)。在時間循環(huán)過程中,UIKit將傳入的時間和自定義對象相關聯(lián)并響應程序的命令事件。如果用戶的某個操作引起程序的退出,UIKit會通知程序并開始結束程序過程。
下圖簡單的反應了iPhone程序的周期。
在iPhone程序中,main()函數(shù)很少被使用。絕大多數(shù)實際的工作都交由UIApplicationMain()函數(shù)來處理。因此當你在Xcode中新建一個工程時,任何工程的模板生成的main()函數(shù)幾乎都是一樣的,代碼如下:
- #import <UIKit/UIKit.h>
- int main(int argc, char *argv[])
- {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- int retVal = UIApplicationMain(argc, argv, nil, nil);
- [pool release];
- return retVal;
- }
- #import <UIKit/UIKit.h>
- int main(int argc, char *argv[])
- {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- int retVal = UIApplicationMain(argc, argv, nil, nil);
- [pool release];
- return retVal;
- }
main()函數(shù)主要完成3個工作:
1、它創(chuàng)建了一個自動釋放池;
2、調(diào)用UIApplicationMain()函數(shù);
3、釋放自動釋放池。一般來說,開發(fā)者不需要修改main()函數(shù)。
UIApplicationMain()函數(shù)是初始化程序的核心,它接受4個參數(shù),并且開發(fā)者永遠不要修改傳入的這4個參數(shù)。其中argc和argv兩個參數(shù)來自于main()接受的兩個參數(shù);另外兩個String型參數(shù)分別表示程序的主要類(principal class)和代理類(delegate class)。
如果主要類(principal class)為nil,則默認為UIApplication;如果代理類(delegate class)為nil,則程序假設程序的代理來自Main nib文件。如果這兩個參數(shù)任意一個不為nil,則UIApplicationMain()函數(shù)則會根據(jù)參數(shù)創(chuàng)建相應的功能類。因此,如果程序中使用自定義的UIApplication類的子類(不建議繼承UIApplication類建立自定義的子類),你需要將你的自定義類名作為第3個參數(shù)傳進來。
小結:iPhone應用程序中生命周期詳解的內(nèi)容介紹完了,希望本文對你有所幫助!