天天看點

IOS啟動順序

一.UIApplicationMain的執行步驟

1.建立一個UIApplication對象,一個程式對應一個UIApplication對象(單例),UIApplication對象是程式的象征

2.接下來會根據第4個參數建立一個UIApplication的delegate對象

3.開啟一個消息循環(不斷地監聽地一些系統事件)

4.監聽到相應的事件後,就會給代理發送相應的消息

* 當程式啟動完畢,就會發送application:didFinishLaunchingWithOptions:消息

*當程式進入背景,就會發送applicationDidEnterBackground:消息

....

二.UIApplication

1.設定圖示數字

app.applicationIconBadgeNumber =10;

2.設定顯示聯網狀态

app.networkActivityIndicatorVisible = YES;

3.打開一個URL (打電話,打開網址,發短信,發郵件)

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

[app openURL:url];

4.隐藏狀态欄

application.statusBarHidden = NO;

三.常見檔案

1.*-Info.plist 檔案

1>項目中最主要的檔案,描述了軟體名稱.軟體版本,軟體唯一辨別

2>常見設定

*軟體名稱 --Bundle display name -- CFBundleDisplayName

*軟體版本号 -- Bundle Version === CFBunleVersion

*軟體的唯一辨別-- Bundle identifier -- CFBundleIdentifier

1.0

2.*-Prefix.pch

1> 該檔案中的内容會被項目中其他所有檔案所共享

2>用來存全局性的一些宏定義,#import語句

3>控件日志輸出

/*

如果軟體處于調試狀态,系統會預設定義一個叫做DEBUG的宏;

如果軟體處于釋出打包狀态,系統就不會定義DEBUG這個宏

*/

#ifdef DEBUG

//調試狀态:将MJLog替換成NSLog

#define MJLog(...) NSLog(__VA_ARGS__)

#else

//釋出狀态:将MJLog替換成空

#define MJLog(...) //fsdfsdfdsfds

#endif

 3.    Default.png 320 X 480

1>程式在啟動過程中會全屏顯示叫做Default.png 的圖檔

2>可以有多個版本

Default.png 320 X 480   

[email protected] 640 X 960

[email protected] 640 X 1136

4.Icon.png

1>軟體圖示

2>蘋果官方文檔搜尋"app icon" --> App Icons On iPad and Iphone

四\程式的完整啟動過程(控件器的View的顯示過程)

1.點選程式圖示

2.執行main函數

3.執行UIApplicationMain函數

4.建立UIApplication對象.UIApplication的delegate對象

5.開啟事件循環監聽系統事件

6.程式加載完畢後調用delegate對象的application:didFinishLaunchingWithOptions:方法

1>建立視窗對象

self.window = [UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

2>建立控件器對象

self.viewController = [[MJViewController alloc] initWithNibName:@"MJViewController" bundle:nil]

3> 設定視窗的根控件器

self.window.rootViewController = self.viewController;

4>讓視窗成為主視窗,并且可見

[self.window makeKeyAndVisible];

UIApplication\AppDelegate\UIWindow\UIViewController

6.自定義容器

1.加載ViewController.xib檔案

2.建立Objects下面的所有對象

UIView *myview = [[UIView alloc]init];

myView.backgroundColor=[UIColor dfsfd];

myview.frame = CGRectMake(0,20,320,460);

UIButton *btn ...

[myview addSubview:btn];

3.傳入ViewController對象作為xib檔案的owner

vc.view = myview;

繼續閱讀