iOS系列 基礎篇 01 構建HelloWorld,剖析並真機測試


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. 最后再扯個犢子

  沒有結尾總覺得不好看。。。

 

  如果本文對您有幫助,不要忘記戳一下右下角的大拇指哦,呵呵。😄

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM