亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

【iOS】被忽略的main函數

2019-11-14 20:20:24
字體:
來源:轉載
供稿:網友

    如同任何基于C的應用程序,程序啟動的主入口點為iOS應用程序的main函數。在iOS應用程序,main函數的作用是很少的。它的主要工作是控制UIKit framework。因此,你在Xcode中創建任何新的項目都配備了一個默認的主函數。除了少數特例外,你永遠不應該改變這個函數的實現。

 1 #import <UIKit/UIKit.h> 2  3 #import "AppDelegate.h" 4  5 int main(int argc, char * argv[]) 6 { 7     @autoreleasepool { 8         return UIapplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 9     }10 }

    UIApplicationMain函數有四個參數,并使用這些參數來初始化應用程序。你不應該改變傳遞給這個函數的默認值。盡管如此,了解他們的目的,以及他們是如何啟動的應用程序,它也是有價值的。

函數原型:

1 UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString *PRincipalClassName, NSString *delegateClassName);

參數解釋:

argc和argv:是ISO C標準的main函數的參數,直接傳遞給UIApplicationMain進行相關處理。參數包含應用程序何時從系統啟動等信息。這些參數是由UIKit的基礎設施解析,否則可以忽略不計。 

principalClassName:這個參數標識了應用程序的類的名稱(該類必須繼承自UIApplication類)。這是負責運行應用程序的類。建議為這個參數傳nil。

delegateClassName:是應用程序類的代理類。應用程序的代理負責管理系統和你的代碼之間的高層次的互動。 Xcode的項目模板會自動將該參數設置為一個適當的值。

UIApplicationMain函數做的另一件事是加載應用程序的主用戶界面文件。主界面文件包含應用程序的用戶界面中顯示的初始視圖相關的對象。對于使用storyboard的應用程序,這個函數會從你的storyboard的初始視圖控制器和您的應用程序代理提供的窗口運行。對于使用nib文件的應用程序,該方法將nib文件內容加載內存中,但不會在你的應用程序的窗口進行運行;您必須在應用程序委托的方法中運行如下方法。

- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions NS_AVAILABLE_IOS(6_0);

一個應用程序可以有一個主storyboard文件或者一個主nib文件,但它不能兼得。storyboards是首選的方式來指定你的應用程序的用戶界面,但不支持在所有版本的iOS。應用程序主storyboard的文件名應該在應用程序的Info.plist文件中的UIMainStoryboardFile鍵值中設定。(對于以nib文件為基礎的應用程序,你的主nib文件的名稱需要在NSMainNibFile鍵值中設定。)通常情況下,Xcode會在你創建項目時創建相應鍵的值,但可以根據需要進行更改。 

如果主要nib文件存在,就會在nib文件對象里尋找Application對象和連接它的delegate。此函數會根據principalClassName創建UIApplication對象,然后根據delegateClassName創建一個delegate對象,并將UIApplication對象中的delegate屬性設置為delegate對象。 

在程序啟動時:

當您的應用程序啟動(無論是進入前臺還是后臺),需要使用如下方法并進行相應操作:

1 - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions NS_AVAILABLE_IOS(6_0);2 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions NS_AVAILABLE_IOS(3_0);

①檢查啟動選項字典中的內容,查看程序啟動的方式,并做出適當的反應。
②初始化應用程序的關鍵數據結構。
③準備好你的應用程序的窗口和視圖進行顯示。
使用OpenGL ES的應用程序不應該使用這個方法來準備他們的繪圖環境。相反,他們應該推遲到- (void)applicationDidBecomeActive:(UIApplication *)application方法調用時啟動OpenGL ES繪圖方法。

 

如果您的應用程序不會自動在啟動時加載一個主要storyboard或nib文件,您可以使用- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions編寫你的應用程序的窗口顯示。對于同時支持縱向和橫向的應用程序,始終設置主窗口的根視圖控制器在縱向方向。如果該設備是在一個不同的方向在啟動時,系統會告訴根視圖控制器顯示窗口的旋轉信息,以保持正確的方向。

您的應用程序- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions;- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;方法應該總是??盡可能為輕量,以減少你的應用程序的啟動時間。應用預期將啟動并初始化自身,并開始處理不到5秒的事件。如果一個應用程序沒有及時完成它的啟動周期,系統會殺死它。因此,有可能你的啟動慢下來(如接入網絡)的任何任務,應在異步輔助線程執行。

當程序啟動到前臺,該系統還會調用- (void)applicationDidBecomeActive:(UIApplication *)application;方法來完成過渡到前臺。因為這種方法既在啟動時與從后臺過渡到前臺時被調用,使用它來執行所共有的兩個轉變的任何任務。

當程序在后臺運行時,除了準備好對任何事件到達的處理,不應該有太多的任務讓應用程序做。 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人亚洲综合| 亚洲成人激情视频| 国产成人精品亚洲精品| 欧美黑人xxxx| 国产精品网红福利| 日本国产一区二区三区| 不卡av电影在线观看| 久久综合网hezyo| 久久99精品久久久久久琪琪| 国产日韩欧美在线播放| 91av在线精品| 亚洲第一黄色网| 欧美大片欧美激情性色a∨久久| 欧洲中文字幕国产精品| 久久久亚洲影院你懂的| 青青久久av北条麻妃海外网| 久久久久999| 欧美日韩成人精品| 91精品国产91久久久久久| 亚洲一区二区三区香蕉| 97人洗澡人人免费公开视频碰碰碰| 九九精品在线视频| 另类图片亚洲另类| 欧美日韩成人黄色| 国内伊人久久久久久网站视频| 欧美日本精品在线| 亚洲第一福利在线观看| 亚洲国产精品嫩草影院久久| 久久亚洲国产精品成人av秋霞| 中文字幕日韩在线视频| 91精品中国老女人| 91在线高清免费观看| 日韩精品中文在线观看| 久久久精品免费视频| 国产小视频国产精品| 国产精品久久一| 成人免费观看a| 国产精品久久久久久久久久久不卡| 色中色综合影院手机版在线观看| 国产一区视频在线| 欧美在线影院在线视频| www国产精品com| 亚洲影视中文字幕| 国产精品久久77777| 在线日韩第一页| 奇米一区二区三区四区久久| 日韩av免费在线播放| 国产日韩视频在线观看| 九九热精品视频国产| 尤物精品国产第一福利三区| 欧美国产乱视频| 成人免费视频网址| 91精品视频播放| 91av在线视频观看| 68精品久久久久久欧美| 亚洲欧美另类人妖| 欧美日韩国产一区二区| 中文字幕欧美亚洲| 亚洲欧美中文另类| 亚洲成人在线视频播放| 国产精品美女免费| 日韩欧美高清视频| 岛国av在线不卡| 亚洲欧美国产日韩中文字幕| 日韩精品免费综合视频在线播放| 欧美限制级电影在线观看| 亚洲护士老师的毛茸茸最新章节| 亚洲丝袜av一区| 欧美一级大片在线观看| 欧洲成人免费视频| 欧美日韩国产一中文字不卡| 国产欧美日韩丝袜精品一区| 国产成人涩涩涩视频在线观看| 热久久美女精品天天吊色| 久久99热这里只有精品国产| 日韩精品在线免费观看视频| 日本韩国在线不卡| 国产精品444| 日韩视频精品在线| 国产精品福利在线观看| 久久久99免费视频| 国产精品a久久久久久| 日韩精品欧美国产精品忘忧草| 日韩电影免费在线观看| 欧美乱人伦中文字幕在线| 日韩欧美国产免费播放| 国产亚洲欧美aaaa| 色婷婷综合成人av| 亚洲男人的天堂在线| 亚洲视频在线播放| 中文字幕日韩欧美| 国产91在线播放| 日韩av在线高清| 亚洲日韩第一页| 日韩视频精品在线| 国产精品久久久久免费a∨大胸| 午夜精品一区二区三区在线视频| 精品一区二区三区四区在线| 亚洲一区二区中文| 国产精品极品美女粉嫩高清在线| 欧美一区二粉嫩精品国产一线天| 日韩在线视频网站| 中文字幕日韩精品在线观看| 国内精品久久久久| 国产成人自拍视频在线观看| 美日韩精品免费视频| 成人免费在线视频网站| 亚洲福利精品在线| 久久大大胆人体| 国产亚洲精品成人av久久ww| 91精品国产乱码久久久久久久久| 91在线免费看网站| 欧美成人合集magnet| 精品成人av一区| 国产成人涩涩涩视频在线观看| 欧美成人一区二区三区电影| 亚洲欧美在线第一页| 久久久久久97| 日韩女优在线播放| 高清一区二区三区四区五区| 欧美日韩成人在线视频| 国产成人免费av电影| 国产精品久久久久久av福利| 亚洲男人天堂网站| 中文在线资源观看视频网站免费不卡| 在线观看日韩欧美| 久久久久久国产精品| 成人免费自拍视频| 日韩欧美在线中文字幕| 91久久久久久久久久| 91国产一区在线| 伊人青青综合网站| 日韩av三级在线观看| 欧美在线精品免播放器视频| 精品国产91久久久| 日韩欧美在线视频观看| 国产午夜精品久久久| 国产999精品视频| 亚洲午夜激情免费视频| 懂色av中文一区二区三区天美| 国产亚洲精品久久久久动| 日韩成人激情视频| 欧美孕妇毛茸茸xxxx| 欧美日韩国产91| 欧美精品九九久久| 久久最新资源网| 国产精品女人久久久久久| 久久全球大尺度高清视频| 国产亚洲精品美女久久久| 精品欧美激情精品一区| 亚洲免费视频在线观看| 日本精品免费观看| 国产成人综合精品| 日本sm极度另类视频| 国产美女精品免费电影| 91中文在线视频| 欧美乱妇40p| 欧美成人全部免费| 91免费国产视频| 欧美日产国产成人免费图片| 国产成人精品日本亚洲专区61| 国产成人精品网站| 超在线视频97| 欧美在线视频网站|