iOS程式的執行順序和iOS程式檔案執行順序

來源:互聯網
上載者:User

標籤:

iOS程式的執行順序     

首先從main.m檔案的main函數開始執行的。
int main(int argc, char * argv[]){ @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); }}//1、principalClassName:應用程式物件的類名(UIApplication或其子類)//2、delegateClassName:應用程式delegate的類名。(任何接受了UIApplicationDelegate的類)
UIApplicationMain根據上述兩個類名建立應用程式執行個體、應用程式代理程式執行個體。然後建立事件迴圈(runloop),檢測程式的各種事件(程式開始啟動,接收到觸摸等等)

在執行UIApplicationMain函數時做了跳轉,轉到了AppDelete中。應用程式代理程式,主要檢測應用程式的狀態並做出相應的處理。應用程式的狀態有很多,比如:程式啟動、進入活躍狀態、進到後台、記憶體警告、收到遠程訊息等等。任何接受了UIApplicationDelegate協議的對象都可以成為應用程式代理程式。一旦應用程式的某種狀態觸發,就會執行相應的代理方法。UIApplicationDelegate是一個OC的協議。裡面聲明了一堆方法,這些方法都與應用程式運行狀態有關,它們由應用程式代理程式實現。UIApplication對象負責調用。

 

application:didFinishLaunchingWithOptions:告訴delegate程式啟動即將完成,程式準備要運行。(delegate實現這個方法時,要建立window對象,將程式內容通過window呈現給使用者。),在該方法中為我們應用程式建立window等必要的介面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];//初始化window self.window.backgroundColor = [UIColor grayColor];//設定window的背景色 [self.window makeKeyAndVisible];//把window設定為主視圖 [self.window setRootViewController:[[UIViewController alloc] init]];//設定window的根視圖控制器 return YES;}

 

applicationWillResignActive:程式即將結束活躍狀態,(例如:突然來電話,簡訊,下來功能表列等)就會執行該方法,一般在該方法中做一些必要資訊的儲存,和一些暫停動作。例如,遊戲進行中時,要暫停遊戲
- (void)applicationWillResignActive:(UIApplication *)application { NSLog(@"*****%s",__func__);//__func__列印方法名}

 

applicationDidEnterBackground:程式已經進入後台,如果程式長期在後台獃著,有可能會退出,所以在該方法中要進行一些重要資料的持久化。(按Home鍵)
- (void)applicationDidEnterBackground:(UIApplication *)application { NSLog(@"*****%s",__func__);}

 

applicationWillEnterForeground:程式即將進入前台,一般式在程式由後台進入該程式的時候執行該方法
- (void)applicationWillEnterForeground:(UIApplication *)application { NSLog(@"*****%s",__func__);}

 

applicationDidBecomeActive:告訴delegate應用程式已經進入活躍狀態(重新執行被暫停任務),程式啟動或者由後台進入前台都會執行該方法
- (void)applicationDidBecomeActive:(UIApplication *)application { NSLog(@"*****%s",__func__);}

 

applicationWillTerminate:即將退出時執行該方法
- (void)applicationWillTerminate:(UIApplication *)application{ NSLog(@"*****%s",__func__);}

 

ios程式檔案執行順序  plist檔案中      1.bundle Display Name 在熒屏中app的檔案名稱(改完之後刪除,重新運行)       2.bundle Identifier 上線時候用 ,唯一標識       3.bundle Version 版本號碼       4. Supported interface orientations (Portrait(bottom home button))       5.Icon files添加不同尺寸的圖片57*57/114*114自動加圓角       6.Icon already includes gloss effects 設定yes ,去除高光       7.Application doesn`t run  in background 可以設定為yes  .pch檔案 ,先行編譯檔案 Infoplist。strings檔案,關於多語言 架構裡面都是標頭檔

iOS程式的執行順序和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.