使用xcode開啟乙個專案,很容易會發現乙個檔案main.m檔案,此處就是應用的入口。
程式啟動時,先執行main函式,main函式是ios程式的入口點
int main(int argc, char * ar**)
}複製**
int argc,
char *ar**,
nsstring *principalclassname,
nsstring *delegateclassname
}複製**
開啟事件迴圈(如果不進行迴圈,那麼在main函式結束後程式就結束了。要保證程式建立後可以一直存在)
self.window = [[uiwindow alloc] initwithframe:[uiscreen mainscreen].bounds];
uiviewcontroller *viewcontroller = [[uiviewcontroller alloc] init];
self.window.rootviewcontroller = viewcontroller;
// 此時根控制器的view還沒有加到self.window上
[self.window makekeyandvisible];
// 此時根控制器的view加到self.window上
return yes;
}複製**
首先建立視窗,得到乙個正確的uiwindow例項物件用來顯示介面(self.window是系統自帶的屬性)。接著設定視窗的根控制器。自己建立控制器,設定這個控制器為self.window的根控制器。注意這個時候根控制器的view還沒有加到self.window上,當視窗要顯示的時候,才會把視窗的根控制器的view新增到視窗。
顯示視窗:
[self.window makekeyandvisible] // 實際做了下面的事
複製**
self.window.hidden = no;
複製**
概覽
載入info.plist檔案,讀取最主要storyboard檔案的名稱
載入最主要的storyboard檔案,建立白色箭頭所指的控制器物件
並且設定上一步建立的控制器為uiwindow的rootviewcontroller屬性(根控制器)
展示uiwindow,展示之前會將新增rootviewcontroller的view到uiwindow上面(在這一步才回建立控制器的view)
[window addsubview:window.rootviewcontroller.view];
複製**
應用程式App的啟動過程
有storyboard情況下 1.執行 main 函式 3.開啟乙個主執行迴圈,保證應用程式不會退出 4.根據 info.plist 獲得 main.storyboard 的檔名,載入 main.storyboard 有storyboard的情況 建立uiwindow 建立和設定uiwindow 的...
SpringBoot 應用程式啟動過程探秘
說到接觸 springboot 伊始,給我第一映像最深的是有兩個關鍵元素 對照上面的典型 這個兩個元素分別是 注 本文首發於my personal blog,歡迎光臨小站 我們來舉乙個栗子,把我們天天司空見慣的 springboot 應用的啟動類來拆解一下寫出來 public static void...
SpringBoot 應用程式啟動過程探秘
說到接觸 springboot 伊始,給我第一映像最深的是有兩個關鍵元素 對照上面的典型 這個兩個元素分別是 注 本文首發於my personal blog,歡迎光臨小站 我們來舉乙個栗子,把我們天天司空見慣的 springboot 應用的啟動類來拆解一下寫出來 public static void...