前言
前幾天在公司內部做了一次關於iOS的入門分享,聽眾有PHP、Web、Android、測試、產品、UI等,主旨是力求不懂iOS的人能瞭解iOS的開發流程,聽後都能建立一個iOS專案並列印HelloWorld。(這是背景)
你想想就這麼點需求,沒啥東西吧,又因為最近專案還特別忙就什麼也沒有準備,以至於分享中就有了一些小尷尬::>_<::
總結下來,像聽眾有技術和非技術這樣而且是不懂iOS得其實是最難兼顧的,不準備還不是等死。。。當然最大的感受還是自己掌握的iOS基礎太渣,對於一個沒有接觸過iOS的技術或非技術,視角不一樣看到的東西就不一樣,他會對所有的東西都好奇都想知道是怎麼回事,所以他會問一些iOS開發中不重要但是確實是屬於iOS的問題, so隨著分享的深入什麼設計模式MVVM、runtime、亂七八糟的都講了,但也掩蓋不了自己基礎的薄弱,所以近期打算重新梳理一下自己的iOS知識體系,把自以為自己懂得的知識好好總結,用部落格的形式表現出來,畢竟寫部落格是最能檢驗一個人知識鞏固好壞的方法了,最近一段時間一直在寫PHP、JS等方向的分享,是時候迴歸一下本職了,希望能幫助自己鞏固基礎更希望能幫助跟我一樣基礎不是那麼牢固的童鞋們!
一、建立新一個工程
Xcode一直沒有升級%>_<%,目前最新版本是Xcode7.3了,但本篇依據的是我目前使用的Xcode7.1.1,不過區別也不會很大的。
1、第一步開啟Xcode,找到Xcode程式圖示並點選
![](https://i.iter01.com/images/5cc73f2c156dbefdcd82406b7c3b92cdb6374819c617e10a52fe39f46fb78e47.png)
2、如下介面,我們點選新建一個專案,即第二項
![](https://i.iter01.com/images/c6689923b2aaad1d812aeb152e899d6855c397249ab751f2310f72b230931fd1.png)
1、Get started with a playground
Playground是蘋果公司在2014年WWDC(蘋果開發者大會)隨Swift一起推出的,可以實現一邊寫程式碼,一邊預覽效果(即實時預覽程式碼的效果)的工具。
相對於以前寫程式碼要經過Build→Run漫長的等待才能看到程式碼的效果來說,Playground給程式設計師帶來的方便不言而喻。
Playground的不足之處是:無法直接將Playground檔案直接用到工程中,暫時不支援Objective-C 。
我們開發者可以利用Playground來快速測試一些程式碼和效果。
2、Create a new Xcode project
建立一個新的Xcode專案,一般正式的專案都是從此選項開始的。
3、Check out an existing project
開啟一個已經存在的專案
3、選擇一個專案模板建立,如下,圖中已經標出不同,並點選Next
![](https://i.iter01.com/images/42b9c5f078dcc40623473b19ae8a267aa77c00fffea82c1dd8f93b75d7d44d80.jpg)
左側欄:
左側欄中四個分類分別代表了手機/pad、手錶、電視、及PC端的開發選項,就是一款Xcode足可以開發蘋果所有產品線中的所有軟體,是不是特別叼?
Application:即建立一個完整的專案。
Framework & Library:即寫一個框架或者庫(這個初學者用不到,但是等入門之後會發現這個很有用的,具體不在闡述,這可以再引申出一大篇文章了)
右側詳細:
各種預定義的模板,具體可從圖中顯示看出各個模板的樣式,一般而言專案會選擇最簡單的即第三個模板。
4、填寫並選擇一些所建立專案的資訊,如下並點選Next
1、Product Name
專案名稱,比如本例中名稱就是XcodeIntroduction(駝峰式命名)
2、Organization Name
組織或公司的名稱,目前是王隆帥(本人^_^),可隨便寫。
3、Organization Identifier
組織或名稱的標識,目前是本人所在的公司,可隨便寫。
4、Bundle Identifier
程式包標識,新建專案時是根據你建立的專案名稱自動生成的不可更改,可在內部修改。
5、Language
開發語言選擇,目前Xcode提供Objective-C、Swift兩個選擇,這裡選擇OC。
6、User Core Data
是否使用CoreData,iOS開發常用的一種資料庫。
7、Include Unit Tests
是否新增模組單元測試Target
8、Include UI Tests
是否新增UI單元測試Target
5、選擇路徑建立專案,如下圖,選擇桌面,並點選Create。
![](https://i.iter01.com/images/e6d668791165ba70b8805c63af0cb21a0471c5fa64bfb9aca1f19b0dc71e3917.jpg)
1、create Git repository on My Mac
是否建立版本控制系統,建立的話可以選擇是在本地還是在伺服器。版本控制系統,或者說修改控制系統,實際上是一種檢測原始檔的改變並將其儲存留作以後參考使用的機制(軟體)。此外,它還能記錄其他有用資訊,比如是哪個開發者修改了程式碼,何時修改的,修改了哪一部分,以及其他歷史資訊。版本控制系統可以比較不同版本程式碼的不同,有必要時能恢復整個專案到以前的版本,追蹤有害程式碼從而減少產品的錯誤。
通過版本控制系統,開發者可以在一個專案的不同分支上工作,當專案的各個部分開發完備時,將它們放到一起形成最終的版本,這個過程被稱為合併。事實上,這種做法再團隊和軟體公司中相當常見:每個人負責專案的一部分,最終所有部分被整合到一起形成最終產品。
6、建立成功後的介面如下
![](https://i.iter01.com/images/d74fdba34230a0492159fbb186b74932bfb603e4338082995058e3f61638133c.jpg)
此介面就是Xcode的主介面了,接下來,會帶你一點點揭開Xcode神祕的面紗,66666。
二、Xcode介面詳細介紹
五大區域介紹,如下圖
![](https://i.iter01.com/images/c7d66fc7b24cc8a88971b93d917347c6ddf78ccc3fe96d0878b53eefd273ff21.jpg)
1、 第一部分:頂部區域
![](https://i.iter01.com/images/b233c82f87cab75d1c7904b7f59118745b61e04b055024ab244535ce7338a49c.jpg)
① 程式執行相關:
從左至右依次:執行按鈕、 停止按鈕、 為工程選擇執行平臺。
② 編輯器相關:
從左至右依次:標準編輯器、 輔助編輯器、 版本編輯器。
③ 皮膚控制相關:
從左至右依次:隱藏(顯示)左側皮膚、 隱藏(顯示)底部皮膚、 隱藏(顯示)右側皮膚。
2、第二部分:左面版
該皮膚是 Xcode 工程導航皮膚, 上方的八個按鈕用於切換導航模式。從左至右 : 專案導航、符號導航、 搜尋導航、 問題導航、 測試導航、 除錯導航、 斷點導航、 日誌導航。
① 專案導航
![](https://i.iter01.com/images/8450ba9bfcadac900f0159e076d27ce725fdd45a28be663e6695332df863f7d3.jpg)
專案導航組成 :
原始檔 : 在 XcodeIntroduction 目錄下的 “.h” 和 “.m” 字尾檔案是原始檔;
屬性檔案 : 在 XcodeIntroduction 下的 Supporting Files 目錄下是屬性檔案 圖片等;
單元測試專案 : XcodeIntroductionTests、XcodeIntroductionUITests 是工程的單元測試專案;
目標應用 : Products 目錄下的 XcodeIntroductionTests.app 是目標應用;
② 符號導航
![](https://i.iter01.com/images/7983fb510f8218769f1996d14f0135854e0965e2c0676c8a66eda663d6c249bc.jpg)
符號導航簡介 : 用符號顯示工程中的 類, 專案 和 屬性;
表示方式 : C 表示類, M 表示方法, P 表示屬性;
快速定位 : 點選對應的方法或者屬性, 能快速定位到這個類中;
③ 搜尋導航
![](https://i.iter01.com/images/2c1c193d13ffe39ed8a5f8cdc3bb906700637e795d1e24e05a94fa21c7b55cae.jpg)
在搜尋框中輸入要搜尋的字串, 按回車就可以搜尋出包含該字串的類;
④ 問題導航
![](https://i.iter01.com/images/b28d74af7e0e0fb66b43b0da6cff25e816de4b2ca49e27ccc5dd4b455b0475d8.jpg)
顯示專案中存在的警告或者錯誤;
⑤ 測試導航
![](https://i.iter01.com/images/d9940cce0bc9146ef9ff3e1e853498388c006dabf0d22325a2d9a8fd0dca1f64.jpg)
點選 testExample 後面的執行按鈕, 就會執行該單元測試;
⑥ 除錯導航
![](https://i.iter01.com/images/d92a3873928e141353f342a1eb4c043f4411811c9e74bc18a02515d2280450ab.jpg)
除錯導航皮膚中顯示了各執行緒的詳細資訊;
⑦ 斷點導航
![](https://i.iter01.com/images/5ceb209d33c01ad7d5c48773ffcb05dedb468f986675c37ee00e8f587aeed31a.jpg)
列出所有的斷點, 方便管理斷點
⑧ 日誌導航
![](https://i.iter01.com/images/f6eb7aeb9859a491ef1597ce947d7bfffeabc4d157fe294d6cd348085ae9e8b3.jpg)
列出專案開發過程中構建、生成、執行過程,每次該過程都可以通過日誌皮膚檢視
3、第三部分:除錯皮膚
![](https://i.iter01.com/images/57de5d8056b470c099f717230e72ac9e48d5588b32c1ab812772004ff5b3175c.jpg)
用於 Xcode 顯示 控制檯除錯輸出資訊。
① 新增斷點
如上圖,在第20行列印“王隆帥的簡書”程式碼上新增一個斷點。
② 開始除錯(自動判斷)
點選頂部皮膚中的除錯按鈕, 如果程式碼中有斷點, 就會自動進入除錯狀態, 執行到斷點時會自動停止, 詳細除錯資訊顯示在底部的除錯輸出皮膚;
③ 除錯皮膚按鈕介紹(上圖紅框中從左至右)
1、Continue program execution : 繼續執行下面的程式碼;
2、Step over : 單步除錯, 點選一次該按鈕, 執行一行程式碼, 如果有方法呼叫, 不會進入方法中;
3、Strp in : 步入除錯, 點選該按鈕, 會進入方法中;
4、Step out : 步出除錯, 在方法中, 點選該按鈕, 會退出方法, 執行方法外的單步除錯;
5、點選會出現此時專案的檢視層次結構
6、點選會讓你選擇你的地理位置
4、第四部分:右皮膚
包括兩個部分上側的檢查器皮膚和下側的庫皮膚。
① 檢查器皮膚
檢查皮膚分類 :
普通原始檔 : 包含 檔案檢查器 和 快速幫助器;
故事版 : 介面檔案, 除了檔案檢查器 和 快速幫助器之外, 還有 身份檢查器, 屬性檢查器, 大小檢查器, 連線檢查器;
1)檔案檢查器
![](https://i.iter01.com/images/f9e5d3ecdbe1e6bae637001548fffba5de69a6edd1aedbca46cb55f5dde6b193.jpg)
Identity and Type : File Name(檔名), File Type(檔案型別), Full Path(路徑);
Text Settings : Text Encoding(檔案編碼使用字符集), Indent Using(縮排), Wrap lines(自動換行);
2)快速幫助器
![](https://i.iter01.com/images/fdb4462ff6d9d062a1791b767c7d22cc664e51de993566e81b00c73d456cabd0.jpg)
介面設計相關檢查器
使用者選中 “.storyboard” 或者 “.xib” 字尾的檔案時, 會多出另外四個檢查器;
3)身份檢查器
![](https://i.iter01.com/images/6d305c5f52b36f218921467a4a1a0aeb7ad0f0102c90cc81e623c18ff9540127.jpg)
管理介面元件類 實現類, 恢復ID 等標識性的屬性;
4)屬性檢查器
![](https://i.iter01.com/images/7da4d96e82fa6ee16e6348ff3bc065456594d9f3ff962dd6cdbabd3649286291.jpg)
管理介面元件 拉伸方式, 背景色 等屬性;
5)大小檢查器
![](https://i.iter01.com/images/c047eae033ba30d61b2fb16a13d4594d50ae037af7bbfc49d37cf23f625a4686.jpg)
管理介面元件 寬高 xy軸座標 等屬性;
6)連線檢查器
![](https://i.iter01.com/images/e2bb6d99dbfb822b4b63a1d9f1747808e7bbef36cb8efdd7e6adc4de1413df1b.jpg)
管理介面元件 與程式程式碼之間的關聯性;
② 庫皮膚(從左至右)
專案的各種庫檔案,方便查詢使用。
1)檔案模板庫
![](https://i.iter01.com/images/650a9ef2001fcb73e7b9bb99d16385045f52f3c6ed5bacb433843345e9979a21.jpg)
管理檔案模板, 可以快速建立指定型別檔案, 可以直接拖入專案中;
2)程式碼片段庫
![](https://i.iter01.com/images/7ef0cdc5bce86619e5039134b495884aa767aa7de071288ec148c55008b19a69.jpg)
管理各種程式碼片段, 可以直接拖入原始碼中;
3)物件庫
![](https://i.iter01.com/images/7032cecc86c63d3aa5c0b4c2e5510f085880c0ce4d93cb740f4269587464c229.jpg)
介面元件, 可以直接拖入 故事板中;
4)媒體庫
![](https://i.iter01.com/images/5c07acc5b969c582d001f3a852009cc1a4736613178651795c013999f4dad34a.jpg)
管理各種 圖片, 音訊 等多媒體資源;
5、第五部分:詳細編碼區
該區域是程式碼編寫的主要區域。
三、Xcode選單詳解
![](https://i.iter01.com/images/61ebd7a1a492fb4a4774a6f35e44d4581845ca5b619c4ec1d8d048e7e1ab5152.png)
![](https://i.iter01.com/images/a8d21b6053007decfee6f9dc7b2551c4bdbadecf4263cb4cc8ad0feaaf6a5c25.png)
![](https://i.iter01.com/images/c1b04cd7f19a67babe1c756890f1491440abd47570fe9a744aa744fa9df7e69c.png)
![](https://i.iter01.com/images/ab201d02f18871728e06358d209c10eec733a8e3c3fe2655bd8056d683d3e829.png)
![](https://i.iter01.com/images/5d471c03a6c0eabf76fc5db7479fd780e766abc99487483dfcbc2138ab89f578.png)
![](https://i.iter01.com/images/0b5cfcc11382c984fcdeb1a101be3d5a850df933f22fc7373d4e7d8f0b87df5d.png)
![](https://i.iter01.com/images/582080d43289c3e893709f1ec1271b994c123fd27bff99db3c8ddb9c3a413858.png)
![](https://i.iter01.com/images/d467abb994d6e9b047015cb5d0149dc879e613296012a091da96d9abc290b00b.png)
![](https://i.iter01.com/images/1f36b1ea89a51781f5899ddf61facaf4c98178e0dafdebfd3c1bd6518b4f2fca.png)
![](https://i.iter01.com/images/8df90b7dd65b2648be92fcbedd2a822edec522cb825a1edde00435df177277e2.png)
![](https://i.iter01.com/images/aeca38c3fe407a49c66e2c8b9a78a262f81427d7488482da19d707c87cad787a.png)
![](https://i.iter01.com/images/dbb11515925f3b918a512a615ebd836a13649dce146b5ba8896130339c931f8b.png)
![](https://i.iter01.com/images/ef21da9f79ed1927be8d4b92443ef44eab62acbcf59f5d948ef361fbf4696a10.png)
![](https://i.iter01.com/images/e81e0f6a0330d66ca0a79730867b8aa35657bbd8d347b139e7e4def7d7b2b7b6.png)
![](https://i.iter01.com/images/b301e32209fee286d846b8dc44866301e23d92f831090c179e35742c224a68a2.png)
四、Xcode快捷鍵介紹
Xcode中的快捷鍵確實會讓人眼花繚亂,在此只介紹主介面上按鈕點選的快捷鍵(有很強的記憶規律),程式碼相關、執行相關的程式碼可以看這裡,這裡面的道道還是很多的Y^o^Y
1、第一個需要知道的是Xcode的各區域與修飾鍵的關係,下面是一個快速瀏覽
Command:用來導航,控制導航區域
Alt:控制右邊的一些東西,比如Assistant Editor,utility editor
Control:編輯區域上的Jump bar的一些互動
如下圖
![](https://i.iter01.com/images/db827768df6a2fa4e10c770e0d6a6bc9b6e047ba3b64f4c9828f6da2780f7f42.jpg)
下面是最常用的組合鍵:
Command 1~ 8: 跳轉到導航區的不同位置
Command 0 :顯示/隱藏導航區
Command Alt 1~ 6:在不同檢測器之間跳轉
Command Alt 0: 顯示/關閉工具區.
Control Command Alt 1~4: 在不同庫之間跳轉
Control 1~ 6: 在Jump bar的不同標籤頁的跳轉。
最後也是最簡單的就是Enter鍵,當它和Command組合使用時,可以是你在Xcode中不同編輯器來回切換。
Command + Enter: 顯示標準單視窗編輯器
Command Alt Enter:你可以猜下它的作用,它的功能是開啟Assistant editor
Command Alt Shift Enter: 開啟版本控制編輯器
同樣重要的是顯示/隱藏除錯區的快捷鍵是 Command + Shift + Y ,要記住這個你可以通過這句話來記憶 “Y is my code not working?” (譯者注:Y諧音Why)。
如果你忘記了一些快捷鍵,你可以在Xcode的選單欄Navigate一項中找到大部分快捷鍵。在即將完成這一部分的學習之時,你會驚奇的發現你僅僅只是用了鍵盤就讓Xcode發生這各種變換。
五、結語
工欲善其事必先利其器, Xcode如此叼, 掌握了它, iOS還不隨你玩!目前最新的版本為Xcode7.3, 提醒大家, 謹慎升級, 根據認識朋友的升級感受, 目測比較坑, 尤其是自動補全機制, 升級前可自行谷歌先行者的感受…( ⊙o⊙ )千真萬確。
本文由作者 王隆帥 編寫,轉載請保留版權網址,感謝您的理解與分享,讓生活變的更美好!
六、參考資料
www.360doc.com/content/15/…
jingyan.baidu.com/article/4b0…
www.cocoachina.com/ios/2014052…
blog.csdn.net/shulianghan…
www.jianshu.com/p/8bcdf44b6…
www.cocoachina.com/ios/2014073…