一.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;