iPhone開發進階(3) — iPhone應用程式的啟動過程

來源:互聯網
上載者:User
  • 博主:易飛揚
  • 原文連結 : http://www.yifeiyang.net/iphone-developer-advanced-3-iphone-application-startup-process/
  • 轉載請保留上面文字。

    iPhone開發進階(3) --- iPhone應用程式的啟動過程

    上一回我們看到了iPhone的入口函數main,這之後它有是怎樣啟動應用程式,初始化的呢,這些都是通過 UIApplicationMain 來實現的。

    其啟動的流程圖大致如所示:

    int retVal = UIApplicationMain(argc, argv, nil, nil);

     

    通過上面的語句,建立UIApplication執行個體。同時,查看應用程式的 Info.plist 檔案(該檔案記錄了一些應用程式的基礎資訊,比如程式名稱,版本,表徵圖等)。該檔案還包含應用程式資源檔的名稱(nib檔案,名稱用NSMainNibFile鍵指定)。如下所示:

     

     <key>NSMainNibFile</key>
        <string>MainWindow</string>

     

    上面的意思是指,在應用程式啟動的時候,需要從nib檔案中載入名為 MainWindow 的資源。

    其實,nib檔案也是參照項目中Resources組中MainWindow.xib檔案,我們雙擊該檔案,啟動Interface Builder後可以看到下面的圖示:

     

     

    Interface Builder 中有以下4個項目:

    • File’s Owner 對象,實際上就是 UIApplication 的執行個體。
    • First Responder 對象。每個程式都會有一個第一響應者,比如滑鼠事件,鍵盤事件等,它就是對應的那個對象。比如多文檔程式中,menu的響應事件一般都是串連到FirstResponder中去的,因為主介面一般都在別的nib裡面,此時的FirstResponder就是你的那個主nib的FileOwner。
    • Delegate 對象。
    • Window。應用程式啟動的時候所顯示的視窗。

    應用程式啟動之後,像下面圖一樣,你可以定製自己的行為。

     

     

    程式啟動之後,會發送訊息給 UIApplicationDelegate 的 applicationDidFinishLaunching 方法,在這裡我們完成自己的初始化過程。如下面的代碼。

    - (void)applicationDidFinishLaunching UIApplication *)application {

        // Override point for customization after app launch
        [window addSubview:viewController.view];
        [window makeKeyAndVisible];
    }

    - (void)dealloc {
        [viewController release];
        [window release];
        [super dealloc];
    }

     

    [window addSubview:viewController.view] 表示 XXXXXXViewController.xib 、[window makeKeyAndVisible] 是顯示該視窗。

    總結以上的內容,iPhone應用程式的引導過程如下所示:

     

    main.m → MainWindow.xib → XXXXXXDelegate.m → XXXXXXViewController.m → XXXXXXViewController.xib

     

    或者看下面的圖來理解。

     

     

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.