iOS的程式啟動原理

來源:互聯網
上載者:User

標籤:

一、程式啟動原理1. 首先找到程式入口,執行main函數

main -> UIApplicationMain

2. UIApplicationMain底層做事情

1> 建立UIApplication對象

2> 建立UIApplication的代理對象,而且給UIApplication對象代理屬性賦值

3> 開啟主運行迴圈,作用接收事件,讓程式一直運行

4> 載入info.plist,判斷下有木有指定main.storyboard,如果指定就會去載入

3.建立UIWindow

1> 載入info.plist,判斷有沒有指定main.storyboard,指定了main.storyboard,就會去載入main.storyboard,執行main.storyboard的時候建立視窗,載入控制器,設定視窗的根控制器,顯示視窗。

2> 在載入info.plist檔案之後,如果沒有指定main.storyboard,會在程式啟動完成的時候建立視窗。 (手動建立視窗

 

 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 2     // 視窗顯示的注意點: 3     // 1.一定要強引用 4     // 2.控制項要想顯示出來,必須要有尺寸 5  6     // 1.建立視窗 7     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 8  9     // 2.建立根控制器,在設定視窗的根控制器10     UIViewController *vc = [[UIViewController alloc] init];11 12     // 設定視窗的根控制器,底層會自動把根控制器的view添加到視窗上,並且讓控制器的view有旋轉功能13     self.window.rootViewController = vc;14 15     // 3.顯示視窗16     // makeKeyAndVisible:讓視窗成為應用程式的主視窗,並且顯示視窗17     [self.window makeKeyAndVisible];18 19     return YES;20 }

 

二、UIApplication

1> UIApplication對象是應用程式的象徵

2> 每一個應用都有自己的UIApplication對象,而且是單例的。通過[UIApplication sharedApplication]可以獲得這個單例對象。

3> 一個iOS程式啟動後建立的第一個對象就是UIApplication對象

4> 利用UIApplication對象,能進行一些應用層級的操作

 

1.應用程式圖片的提醒數字
 1    // 擷取應用程式的象徵 2    UIApplication *app =  [UIApplication sharedApplication]; 3  4     // 應用程式圖片的提醒數字 5     app.applicationIconBadgeNumber = 100; 6  7     // 建立通知對象 8     UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil]; 9     // 註冊使用者通知10     [app registerUserNotificationSettings:settings];
2.連網狀態
1     // 連網狀態2     app.networkActivityIndicatorVisible = YES;
3.開啟資源,電話,網頁,發簡訊
1 // 開啟網頁2 NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];3 [app openURL:url];
4.設定狀態列  在iOS7之後,狀態列預設交給控制器處理
 1 // 狀態列的隱藏 2 - (BOOL)prefersStatusBarHidden 3 { 4     return YES; 5 } 6 // 狀態列的樣式 7 - (UIStatusBarStyle)preferredStatusBarStyle 8 { 9     return UIStatusBarStyleLightContent;10 }

那麼在iOS7之後如何設定用UIApplication對象管理狀態列:

(在info.plist中添加一個字典View controller-based status bar appearance = NO)


 使用UIApplication對象管理狀態列的好處
 1.統一管理.(控制器很多的情況下用控制器不好管理)

//    app.statusBarHidden = YES;

 2. 隱藏狀態列可以設定動畫

1   [app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];

 

---恢複內容結束---

 

 

iOS的程式啟動原理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.