日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS程序的启动过程介绍

發布時間:2025/4/16 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS程序的启动过程介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??? 大家在學習iPhone開發時候,都會寫HelloWorld程序。大家一般都是通過向導,生成項目,然后通過模擬器啟動應用程序。但是大家知道其背后的啟動過程嗎?也就是當點擊程序圖標啟動程序開始到退出程序整個使用運行過程中底下的代碼都發生了什么?有理解了這個才能游刃有余的掌握iPhone程序的開發,否則在寫程序的時候有點渾渾僵僵不知所以然的感覺。

??? 在開始介紹HelloWorld程序之前,我們先了解下UIApplication:

UIApplication

??? UIApplication的核心作用是提供了iOS程序運行期間的控制和協作工作。

??? UIApplication的一個主要工作是處理用戶事件,它會起一個隊列,把所有用戶事件都放入隊列,逐個處理,在處理的時候,它會發送當前事件到一個合適的處理事件的目標控件。此外,UIApplication實例還維護一個在本應用中打開的window列表(UIWindow實例),這樣它就可以接觸應用中的任何一個UIView對象。UIApplication實例會被賦予一個代理對象UIApplicationDelegate,以處理應用程序的生命周期事件(比如程序啟動和關閉)、系統事件(比如來電、記事項警告)等等。

??? 每一個程序在運行期必須有且僅有一個UIApplication(或則其子類)的一個實例。你可以通過調用[UIApplication sharedApplication]來得到這個單例實例的指針。

?

HelloWorld程序

??? 打開項目文件,找到Other Sources文件夾下的main.m源文件,打開,你將會看到如下代碼:

int main(int argc, char *argv[]) {

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

int retVal = UIApplicationMain(argc, argv, nil, nil);

[pool release];

return retVal;

}

??? 和所有的C程序一樣,這是個程序入口main函數(NSAutoreleasePool內存自動回收池,不在這篇文章討論的范圍)。接下來我們來看UIApplicationMain函數,查看iPhone開發文檔:

int UIApplicationMain (
?? int argc,
?? char *argv[],
??
NSString *principalClassName,
??
NSString *delegateClassName
);

HelloWorldAppDelegate實現了UIApplicationDelegate協議,可以重寫其所有方法。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
??? // Override point for customization after application launch.
????
??? self.window.rootViewController = self.viewController;
??? [self.window makeKeyAndVisible];
??? return YES;
}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)loadView
{

??? // add control
}

??? 至此,HelloWord程序啟動過程以及介紹完成,大家對程序的啟動過程有沒有新的認識?

???

??? 總結程序啟動的過程如下:

1. 程序入口main函數創建UIApplication實例和UIApplication代理實例。

2. 在UIApplication代理實例中重寫啟動方法,設置第一ViewController。

3. 在第一ViewController中添加控件,實現應用程序界面。

?

by sschu

轉載于:https://www.cnblogs.com/ydhliphonedev/archive/2012/07/30/2615801.html

總結

以上是生活随笔為你收集整理的iOS程序的启动过程介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。