IOS Application應用程序核心架構

  一個新建的IOS application程序主要由以下文件組成:

  main.m

  *appDelegate.h/.m

  MainWindow.xib

  *info.plist

  IOS應用程序由UIKit封裝,一個Application應用main函數標準實現如下:

int main(int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

  其中NSAutoreleasePool做內存自動釋放,autorelease暫緩釋放操作。

  核心爲UIApplicationMain()函數,UIKit封裝初始化工作,裝載應用程序的用戶界面和開始事件循環。它第3、第4個參數接收NSString*類型參數,用來指定類名。

  第3個參數指定:UIApplication類,如果首要類字符串的值爲nil, UIKit就缺省使用UIApplication類;如果不爲空,應用程序就使用指定的UIApplication類的定製子類(這種做法是不推薦的,但確實是可能的)。

  第4個參數指定:AppDelegate,如果應用程序委託類爲nil,UIKit就會將應用程序主nib文件(針對通過Xcode模板創建的應用程序)中的某個對象假定爲應用程序的委託對象。

UIApplication和AppDelegate

  UIApplication是app應用程序的核心,它負責事件的處理邏輯,把應用程序相關的比如:觸屏處理這些事件分發到對應的FirstResponder,把相關操作通過AppDelegate向下通知出來。UIApplication是任何應用程序適用的處理核心,它通過AppDelegate讓不同的程序產生不同的動作、行爲。

主nib文件

  默認是MainWindow.xib,由*info.plist中NSMainNibFile指定。如果應用程序的信息屬性列表(Info.plist)文件中含有NSMainNibFile鍵,則作爲初始化過程的一個部分,UIApplication對象會裝載該鍵指定的nib文件。主nib文件是唯一一個自動裝載的nib文件,其它的nib文件可以在稍後根據需要進行裝載。

  iPhone應用程序的主nib文件通常包含一個窗口對象和一個應用程序委託對象,還可能包含一個或多個管理窗口的其它重要對象。裝載一個nib文件會使該文件中的對象被重新構造,從而將每個對象的磁盤表示轉化爲應用程序可以操作的內存對象。從nib文件中裝載的對象和通過編程方式創建的對象之間沒有區別。然而,對於用戶界面而言,以圖形的方式(使用Interface Builder程序)創建與用戶界面相關聯的對象並將它們存儲在nib文件中通常比以編程的方式進行創建更加方便。

標準ViewBase工程的程序啓動基本流程

  程序入口main中調用UIApplicationMain(),3、4位參數爲默認參數,使用默認的UIApplication類,使用NIB中指定的AppDelegate類並set到UIApplication。載入NIB文件,構造AppDelegate,創建Window窗口、創建UIViewController。應用程序框架就啓動完成了,UIApplication對事件邏輯處理分發,應用程序就在事件循環中正常執行了。


發佈了55 篇原創文章 · 獲贊 4 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章