1 一個應用程式是怎麼啟動的?當我們基於xcode模版建立應用程式時,應用程式啟動時大部分的環境參數會被自動設定。例如,xcode建立了一個應用程式物件(除此之外,還會做其它一些事情),該應用程式物件建立了一個運行迴圈(運行迴圈登記輸入源並使得輸入事件傳遞到你的應用程式中)。極大部分的事情是在
UIApplicationMain
中完成的。該函數由UIKit架構提供並在項目的main.m源檔案中被自動調用。UIkit架構提供了一個應用程式需要構建和管理它的使用者介面的所有類(啟動、結束應用程式,控制介面和觸時間點事件)。UIkit是Cocoa Touch提供的眾多物件導向架構中的一個。Cocoa Touch是所有IOS應用程式的開發環境。調用UIApplicationMain將會建立一個UIApplication類的執行個體和一個應用程式代理程式類的執行個體,掃描info.plist擷取該應用程式的相關資訊。應用程式代理程式的主要工作是提供一個視窗以供顯示應用程式的內容。在應用程式顯示之前,應用程式代理程式同樣會執行一些配置任務。在所有應用程式中都會有下面的語句:
@autoreleasepool { |
return UIApplicationMain(argc, argv, nil, NSStringFromClass([HelloWorldAppDelegate class])); |
} |
應用程式啟動之前的一些準備工作就是在UIApplication中完成的。
2 ARC@autoreleasepool語句支援自動引用計數系統。ARC為你的應用程式提供了自動的對象生命週期管理,保證對象在使用期間一直存在,在沒有人使用時銷毀。
3 視窗視窗為可視的APP內容提供了一個容器,協助發送事件到應用程式物件。視窗本身是不可見的。
視窗是使用者與應用程式之間的介面,任何可顯示的內容都必須添加視窗的子視圖。 4 Storyboardstoryboard是一個檔案檔案,記錄了一個應用程式使用者介面定義的對象、轉換、串連。當一個應用程式啟動時,storyboard檔案被載入,並根據該檔案內容執行個體化初始視圖控制器。一個storyboard包含一系列情境和segues。一個情境代表一個視圖控制器。一個segue代表兩個情境之間的轉換。 5 視圖控制器是一個管理一個顯示地區的對象。根據不同的條件顯示不同的視圖。視圖控制器本身不是一個可顯示的對象。 6 視圖在螢幕的一個矩形地區畫一些內容並處理使用者點觸事件的一個對象。一個視圖還可以包含其它的視圖,被包含的視圖稱為子視圖。 7 MVC(Model-View-Controller)Model對象代表資料:例如畫圖程式中的一個形狀,遊戲中的一個角色。View對象知道怎麼樣顯示model對象代表的資料。Controller中介模型和視圖:例如一個資料用哪個視圖來顯示。 8 什麼時候需要一個輸出口?如果你需要在程式運行過程中改變某個控制項的屬性,那麼你需要為它建立一個輸出口。輸出口實際上是一個指向某個控制項對象的指標。 9 如何建立輸出口和動作?按住Control,選擇畫布上的某個元素,然後按住滑鼠左鍵並拖動到合適的源檔案,如。注意選擇桔黃色圈標示的模式。
官網指南:https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/Introduction/Introduction.html