標籤:
iOS基礎 01 構建HelloWorld,剖析並真機測試
前言:
從控制台輸出HelloWorld是我們學習各種語言的第一步,也是我們人生中非常重要的一步。
多年之後,我希望我們仍能懷有學習上進的心情,繼續以HelloWorld去認識這世界上更多的東西。
本篇以HelloWorld作為切入點,向大家系統介紹什麼事iOS應用以及如何使用Xcode建立iOS應用。
目錄:
1. 建立HelloWorld工程
1.1. 設計介面
1.2. 真機測試
2. Xcode中的iOS工程模板
2.1. Application類型
2.2. Framework&Library類型
2.3. Other類型
3. 應用剖析
4. 最後再扯個犢子
1. 建立HelloWorld工程
啟動Xcode,然後點擊File-New-Project菜單,或直接點擊“Create a new Xcode project”:
在開啟的Choose a template for your new project介面中選擇Single View Application工程模板:
接著點擊Next按鈕,然後提示輸入項目名稱等資訊:
這裡我們可以按照並結合自己的實際情況和需要輸入相關內容。
下面簡要介紹一下中各個選項:
選項 |
說明 |
Project Name |
工程項目的名稱。 |
Organization Name |
公司或組織的名稱。 |
Organization Identifier |
公司或組織的標識(很重要)。 一般情況下,這裡輸入的是公司或組織的網域名稱(如com.geeksss)。寫法類似於Java中的包名。 |
Bundle Identifier |
捆綁標識符(很重要)。該標識符由Project Name+Organization Identifier構成。 因為在App Store上發布應用時會用到它,所以它的命名不可重複。 |
Language |
開發語言選擇。 這裡可以選擇開發應用所使用哦的語言,Xcode 6中可以選擇Swift和Objective-C。 |
Devices |
選擇裝置。可以構建基於iPhone或iPad的工程,也可以構建通用工程。 通用工程是指一個工程在iPhone和iPad上都可以正常運行。 |
設定完相關的工程選項後,點擊Next按鈕,根據提示選擇存放專案檔的位置:
選擇完存放路徑之後,點擊Create按鈕,項目就建立完畢了。
在項目資源清單中選擇Main.storyboard,即可在編輯區中開啟對應的設計器:
在右下角的物件程式庫中選擇Label,將其拖拽到View設計介面上並調整其位置。
雙擊Label,使其處於編輯狀態(也可以通過控制項的屬性來設定),在其中輸入HelloWorld:
添加Label控制項後,需要設定Label控制項的位置。
拖拽Label控制項,此時會出現藍色的虛線,說明該Label現在處於水平置中位置:
但是如果現在運行該執行個體,我們會發現Label並非置中,還需要為Label添加Auto Layout約束。
關於Auto Layout約束相關的內容,等後續再專門兒介紹吧。
我們選擇工具列中的Resolve Auto Layout Issues(解決Auto Layout問題)按鈕,在彈出的菜單中選擇Add Missing Constrains(添加缺少約束):
添加完成後,Label控制項的上面和下面會出現兩條藍色豎線:
至此,整個工程建立完畢。
,選擇啟動並執行模擬器或裝置,然後點擊左上方的運行按鈕,即可看到運行結果:
點擊運行後,如果是真機測試,第一次會提示輸入您的Apple ID帳號,輸入即可。完事兒就會在手機案頭上看到您的應用:
但是當我們開啟時,提示該應用來自不受信任的開發人員,開啟受限。
畢竟我也沒有購買開發人員認證。。呵呵:
這裡我們按照提示,找到設定:
通用:
裝置管理:
在開發商列表中選擇你剛剛在Xcode中輸入的那個帳號:
然後會看到該帳號所有應用的列表,點擊信任該開發人員:
然後會有一個提示,確定要信任這傢伙嗎?確定即可:
然後我們會看到咱的應用已經通過驗證了:
重新回到案頭,點擊啟動應用,OK,激動的一個介面映入眼帘:
雖然介面很磕砷,並不高大上吧。但是我們在沒有輸入任何代碼的情況下,就已經利用Xcode工具的Single View Application模板建立了一個工程,並成功運行。
Xcode之強大可見一斑。
2. Xcode中的iOS工程模板
剛剛我們建立項目的時候可以看到,iOS工程模板大概分為3類:Application、Framework&Library和Other。
下面將分別介紹這三類模板:
2.1. Application類型
我們大部分的開發工作都是從使用Application類型模板建立iOS程式開始的。該類型共包含5個模板,具體如下:
模板名稱 |
模板介紹 |
Master-Detail Application |
可以構建樹形結構導航模式應用,產生的程式碼包含了導航控制器和表視圖控制器等。 |
Game |
可以構建基於iOS的遊戲應用。 |
Page-Based Application |
可以構建類似於電子書效果的應用,這是一種平鋪導航。 |
Single View Application |
可以構建簡單的單個視圖應用。 |
Tabved Application |
可以構建標籤導航模式的應用,產生的程式碼包含了標籤控制器和標籤欄等。 |
2.2. Framework&Library類型
Famework&Library類型的模板,它可以構建基於Cocoa Touch Framework和Cocoa Touch Static Library的應用:
Cocoa Touch Framework可以讓開發人員自訂應用於UIKit的架構,而Cocoa Touch Static Library可以讓開發人員建立基於Framework架構的靜態庫。
由於代碼安全和多個工程重用代碼的考慮,我們可以將一些類或者函數編寫成靜態庫。
靜態庫不能獨立運行,編譯成功時會產生名為libXXX.a的檔案(例如libHelloWorld.a)。
2.3. Other類型
利用該類型,我們可以構建在應用程式內購買內容包(In-App Purchase Content)和空工程。
,使用在應用程式內購買內容包,可以協助我們構建具有內建收費功能的應用:
我們可以根據需要選用不同的工程模板,這可以大大減少工作量。
3. 應用剖析
在建立HelloWorld的過程中,產生了很多檔案(展開Xcode左邊的項目導航視圖可以看到),
導航視圖下有HelloWorld、HelloWorldTests、HelloWorldUITests和Products四個組。
其中HelloWorld組中放置的是HelloWorld項目工程的重要代碼,而HelloWorldTests組中放置的是HelloWorld程式的單元測試代碼,HelloWorldUITest組中放置的是自動化的測試UI與互動的測試代碼,Products組中放置的是編譯之後的工程檔案。
下面,咱們重點介紹一下HelloWorld組中的項目內容。
在HelloWorld組中,有兩個類AppDelegate和ViewController,兩個介面布局檔案Main.storyboard和LaunchScreen.xib,以及一個組Supporting Files。
Main.storyboard檔案是故事板檔案(下篇重點介紹),LaunchScreen.xib是應用啟動介面的xib檔案。故事板檔案和xib檔案比較類似。
我們主要的編碼工作就是在AppDelegate和ViewController這兩個類中進行的,它們的類圖:
AppDelegate是應用委派物件,它繼承了UIResponder類,並實現了UIApplicationDelegate委託協議。
UIResponder類可以使子類AppDelegate具有處理相應事件的能力,而UIApplicationDelegate委託協議使AppDelegate能夠成為應用程式委派物件,這種對象能夠響應應用程式的生命週期。
相應地,AppDelegate的子類也可以實現這兩個功能。
ViewController類繼承自UIViewController類,它是視圖的控制器類,在工程中扮演著根視圖和使用者事件控制器類的角色。
AppDelegate類是應用程式委派物件,這個類中繼承的一系列方法在應用生命週期的不同階段會被回調,其定義如下:
啟動HelloWorld時,首先會調用畫圈的application:didFinishLaunchingWithOptions方法,其它方法我們後續再詳細介紹。
在項目導航視圖中,我們可以看到還有Images.xcassets檔案,它可以放置工程的圖片。
Supporting Files組只有一個Info.plist檔案,該檔案是工程屬性描述檔案,其中儲存著工程的屬性設定。
Products組是工程要生車功能的產品包。
說明:
在訪問資源檔時,檔案夾和組是有區別的,檔案夾中的資源在訪問時是需要將檔案夾作為路徑的。
如果icon.png檔案放在image檔案夾下,則訪問它的路徑是“image/icon.png”;如果image是組,則訪問它的路徑是“icon.png”。
4. 最後再扯個犢子
沒有結尾總覺得不好看。。。
如果本文對您有協助,不要忘記戳一下右下角的大拇指哦,呵呵。??
iOS基礎 01 構建HelloWorld,剖析並真機測試