【轉】聰明的iOS開發者的Xcode使用技巧

用Xcode的快捷方式快速打開你的文件git

4673_140225171123_1.png

在開始使用Xcode以前就應該強制記憶其快速打開(Open Quickly)的快捷方式。Mac OS X有一個功能叫作Spotlight搜索(QQ截圖20160203165616.png空格),能夠幫你找到文件和應用程序(包括別的文件)。快速打開就是Xcode的Spotlight搜索。我常用快速打開這個快捷方式,由於這是打開一個文件最簡單的方法,只要你知道文件的名字或文件中一個方法/公共變量的名稱。快速打開的優勢是它使用模糊匹配的邏輯。例如,若是我知道該文件的一些概要,我能夠鍵入「概要」,它會給出任何包含「概要」這個詞彙名稱的文件。github

QuickSimplisticLamprey (2).gif

技巧:用快速打開搜索一個方法或屬性可能會很慢,由於它須要對整個項目進行索引和搜索。你的工程越大這會變得越糟,因此搜索一個方法或者屬性時,試一下這麼搜:編程

一、使用 command+shift+O 搜索文件並打開。xcode

二、使用 control+6 快捷方式打開跳轉菜單。緩存

三、開始鍵入名稱,發現它時點擊進入。安全

這會快得多,由於它只索引單個文件的公共符號而不是在整個工程中。編輯器

快捷方式:command+shift+O工具

用快捷鍵和代碼片斷快速編碼佈局

咱們用了一種不太科學的方式進行測試,用iPhone的秒錶測試用鼠標作五個常見的Xcode的事務所花費的時間,個人編碼時間中大約有5%花在了Xcode的導航上。根據運行狀況,這個測試代表鍵盤的快捷鍵要快1.5到3倍。在這個基礎上保守估計,在10000小時的職場生涯中,使用Xcode快捷鍵能夠爲你節省大約250小時的時間。性能

此外,還有一個學習快捷鍵的決定性價值。你學習的快捷鍵越多,你手指放在鍵盤上的時間越多,更有助於你專一于思路。如今就試一試!開始專一鍵入一段代碼,用鼠標選擇和刪除一個詞彙,而後繼續打字。關注思路是如何被打斷的?當你在腦海中平衡一個複雜的編程問題時,輕微的打擾就會中斷你的思路。點擊這裏得到完整版的Xcode鍵盤快捷鍵列表

previewcheatsheet.png

對於哪些想要Xcode更詳細UI導航快捷鍵列表的開發者,可參考如下Xcode界面截圖。這些快捷鍵涉及到Xcode窗口的不一樣部分。我標記的屏幕區域以下:導航(藍色),編輯器(紅色)、調試(綠色)、實用工具(黃色),工具欄(紫色)。

xcodesegments.png

  • command+0: 展現/隱藏導航區域

  • command+1 到command+n選擇不一樣的導航器

  • command+option+J過濾導航結果

  • command+shift+Y顯示/隱藏調試區

  • command+option+0: :顯示/隱藏實用工具區

  • command+option+command+option+n: 切換實用工具區選項卡

  • control+6:方法的跳轉菜單

  • control+1: 魔法菜單(打開試試)

  • control+command+Up 和 control+command+Down: 對應文件導航

  • control+command+E: 範圍內重命名符號(注意:不支持屬性)

  • control+command+Left 和 control+command+Right: 查看歷史文件

  • control+command+J: 查看符號來源

  • option+Selection: 垂直選擇

  • option修飾符: 在輔助編輯器執行快捷鍵

  • command+shift+command+shift[: 移動到下一個/上一個的標籤

  • command+option+command+option+[: 將某行代碼向上和向下移動

  • command+R: 運行應用程序

  • command+B: 構建應用程序

  • control+.: 中止運行中的應用程序

  • control+i: 格式化代碼(高亮代碼)

Xcode的代碼片斷是另一種加快編程的途徑。我反覆用代碼片斷爲一小塊代碼分配一個代號。輸入(很是短)代碼的名稱,我能夠把相應的代碼塊添加到項目中。根據工做類型的代碼,Xcode代碼片斷能夠有效提升工做效率。

看看這些GitHub連接,開始你本身的代碼片斷收集:

使用Xcode的輔助編輯器

輔助編輯器是Xcode中最有用的工具。最初幾個月我都沒有發現它,直到用這個神奇的按鈕打開了我即將編輯的文件。它不是100%的準確,可是菜單系統的設計是超級直觀的,因此你基本上總能找到相關的文件。

輔助編輯器將文本編輯器分爲兩個窗格,並根據你在第一個窗格中正在編輯的文件明智地在第二個窗格中展現有用的功能。例如若是你在storyboard中,它將會展現與當前正在編輯的視圖相關的視圖控制器代碼;若是你處於一個Objective-C實現文件中,輔助編輯器將會展現文件的頭文件。你也能夠調整輔助編輯器來展現基於普經過濾器的文件或者手動導航到某個文件。

話說我看到一個類,並試圖查看如何使用它。這是輔助編輯器很擅長的任務。輔助編輯默認選擇實現文件,由於咱們正處於頭文件中,因此我調整過濾器以展現包括左側文件在內的文件。我很快找到了該類的用法並思考如何使用它。過去我一般是在整個項目中進行搜索,可是輔助編輯器在這方面速度更快,並能夠同時在一個屏幕中顯示兩個環境。點擊這裏查看操做

3.gif

技巧:在Xcode中處理UI文件的一項常見操做是設置IBOutlets。你能夠用不少方法來作到這一點,可是我最喜歡用輔助編輯器將視圖向右拖拽到代碼文件中。點擊查看如何實現

4.gif

快捷鍵:

  • 5.png6.png:顯示/隱藏標準編輯器和輔助編輯器

  • 7.pngas modifier.例如使用模糊的文件搜索8.png,而後按下7.png,選擇一個文件將在輔助編輯器中打開它,而不是主編輯器。

使用、編輯斷點以及爲其添加不一樣的Action

Xcode的斷點對有經驗的使用者來講是個強大的功能。在開發者的職場生涯中,調試工做是困難的,而且花費的時間要比寫代碼更多。對於使用其餘IDE的開發者來講,Xcode提供了一些可能被人忽略的強大的調試的工具。

首先,打開異常/錯誤斷點。每當拋出錯誤或異常時,調試器都要打一個斷點。不少時候應用程序遇到錯誤或異常會致使程序的崩潰,而且咱們會被使人厭惡的代碼所糾纏。開啓斷點的時調試器將會在應用程序的邏輯棧上暫停,這對於診斷問題很是有用。點擊這裏查看添加斷點操做

9.gif

而後,你能夠經過編輯斷點來更高級地使用它。我作過大量的結對編程,發現編輯斷點能夠激發開發者的思惟。許多人都知道他的功能但不實用,我很幸運在個人Xcode生涯早期有一個聰明的開發者教我關於編輯斷點的使用。

技巧:編輯斷點添加一個操做。這些action能夠是Debugger Command,也能夠是Log Message。好比說,我想知道在應用程序的生命週期中什麼時候加載這個視圖。我能夠在Xcode擊中斷點時播放聲音且調試器不會中斷應用程序(經過「Automatically continue after evaluating actions」複選框),而不是添加一個會擾亂我工做流程的傳統斷點。如今我能夠繼續愉快地測試,並在加載視圖控制器時聽到歡快的嗶嗶聲。這是一個快速給你展現如何設置它的示例。

使用Version Editor和Show Related Items更好地審查代碼

遇到不合適的或者難易理解的代碼時,我一般會先使用Blame模式。Blame模式能夠查出原做者以及編寫該代碼的緣由(若是做者寫的話)。若是做者沒有寫明編寫該代碼的緣由,我會跟他們聯繫並親自問明緣由。

一樣的,Compare模式(對比模式)能夠精準指出此前上傳的代碼哪些地方發生了變化。對比模式能夠提示我是否遺留了一些測試代碼或者空的註釋,而後修正和審覈代碼。對比模式在追蹤bug方面也很是有用。

如何才能準確地使用版本編輯器的Blame和Compare模式呢?好比我正在跟蹤某個問題的緣由,我發現不知何故將臨時證書添加到了代碼中,因此我使用Blame模式查找臨時證書添加的時間添加的緣由,結果告訴我去年爲了修復某個崩潰問題添加了臨時證書。如今我知道去年添加了臨時證書,不過我認爲這可能不是致使問題的緣由。那麼還有其餘什麼發生了改變嗎?爲了找到答案,我使用Compare模式找到了問題的源頭,能夠經過一個方案來解決該問題。

另外一個能夠充分使用的功能是審覈代碼時使用的Xcode的Show Related Items功能,我稱之爲「魔法菜單」,雖然它很是有用,但在使用Xcode的第一年,我幾乎沒有發現它的存在。這個按鈕隱藏的很是深,而且看起來也不是可點擊的,可是它包含了Callers和Callees這樣強大的功能,展現代碼在什麼地方以及被誰調用過。這個功能可幫助我弄清楚哪裏會被改變以及如何改變一大塊代碼,而又不破壞別的地方。

10.gif

經過擴展爲Xcode添加功能

擴展能夠爲Xcode添加新的或者其自己缺失的功能。不過擴展系統不像其餘IDE那樣健壯,也不爲大多人所知。雖然擴展有不少很酷的地方,但也依然存在問題。大部分IDE都有內置的擴展庫,但Xcode甚至沒有文檔說明他們的擴展API。你能夠經過如下比較有用的插件爲Xcode添加新功能。

  • Alcatraz:一個開源的Xcode包管理器,可讓你更便捷地發現、安裝以及管理插件、模板和配色方案。只須要簡單地點擊或者勾選,不須要手工複製和粘貼。 

  • FuzzyAutocompletePlugin:一個適用於Xcode 5以上版本的插件,經過添加模糊匹配來提升Xcode代碼自動補全功能。雖然你能夠經過Xcode的command+shift+O快捷鍵進行文件和符號名稱的模糊搜索,但Xcode默認從首字母進行模糊匹配。而使用FuzzyAutocompletePlugin,開發者無需遵循從頭匹配的原則,只要記得方法裏某個關鍵字便可進行匹配,很好地提升了工做效率。

  • VVDocumenter:不少時候,爲了快速開發,不少的技術文檔都是能省則省,這個時候註釋就變得異常重要,再配合Doxygen這種註釋自動生成文檔的,就完美了。可是每次都要手動輸入規範化的註釋,着實也麻煩,但有了VVDocumenter,只須要在要寫文檔的代碼上面連打三個斜槓,就能自動提取參數等生成規範的Javadoc格式文檔註釋。 

  • Uncrustify:容許你指定一個編碼風格,而後格式化保存代碼,無需爲了匹配你的代碼風格而不斷調整代碼。你能夠檢查保存的格式配置和任何擴展它們的代碼。(如今只適用於Objective-C)

  • Color Themes: Xcode自帶一些默認的配色主題,但若是不夠,可經過Alcatraz安裝其餘主題。

  • AdjustFontSize:增大或減少Xcode編輯器的字體。

  • DerivedData Exterminator:爲Xcode增長一個清除所有緩存的按鈕。這在調試工程時是頗有用的。

  • ObjectGraph-Xcode:根據項目中類之間的依賴關係生成有向圖。

  • OMColorSense:展現文本編輯器中UIColor或NSColor的預覽效果。經過它能夠建立或編輯可視化的顏色。

  • OMQuickHelp:不用Xcode的文檔查看器,而是用Dash應用檢閱文檔。

  • SCXCodeSwitchExpander:當在Objective-C中使用switch語句時,很容易忘記檢查全部用例而產生bug。這個插件能夠自動生成switch語句代碼,並安全處理全部用例。功能包括:插入全部可能的switch cases;保留已經使用的條件,僅插入缺失的條件;當使用內置的Xcode片斷時僅保留默認條件;適用於變量、屬性以及方法參數等;適用於嵌套switch語句;快速穩定,且不會明顯影響Xcode的性能。

經過Interface Builder大幅度提升你的效率

interfacebuilder.png

Xcode有一個叫作Interface Builder的用於搭建用戶界面的可視化工具。它不要求使用Interface Builder來建立UI,但可使調整UI這項的乏味任務變得更簡單。Interface Builder的大部分操做都在Xcode的實用工具區,因此知道如何以及什麼時候使用相關部件是頗有用的,可以使用快捷鍵command+option+0(45.png)來打開實用工具區,就能看到6個非標籤性質的按鈕,每個都有不一樣的重要性,對於Xcode初學者來講找到本身須要的按鈕會有點困惑。按照從左到右的順序,這6個按鈕分別是:文件檢查器(File Inspector)、快速幫助(Quick Help)、識別檢查器(Identity Inspector)、屬性檢查器(Attributes Inspector)、規格檢查器(Size Inspector)和鏈接檢查器(Connections Inspector)。

  • 文件檢查器(File Inspector):這個特性很是不多使用。看我的愛好,你能夠點擊打開或關閉自動佈局和配置本地化。

  • 快速幫助(Quick Help):這個特性不多使用,可連接到你所選中項目的相關文檔。

  • 識別檢查器(Identity Inspector):一個頗有用的功能,身份檢查器用於訪問和設置自定義視圖類。

  • 屬性檢查器(Attributes Inspector):我使用它最多。能夠配置所選項目的屬性,例如標籤文本、背景顏色以及alpha值等。

  • 尺寸檢查器(Size Inspector):另外一個有用的功能,可協助你查看和編輯自動佈局約束。

  • 鏈接檢查器(Connections Inspector):此功能的使用頻率取決於你IBOutlet的工做流程,可用來鏈接和查看IBOutlets。

總結

你無需使用以上列出的全部技能才能成爲Xcode行家。每一個人都有本身獨特的Xcode使用技巧,也沒有兩我的所列的技巧徹底一致,關鍵要弄清楚哪一個快捷鍵和技巧最適合你的開發工做,但願以上內容能夠幫你回顧下本身的Xcode使用經驗,並找出其餘方法讓本身成爲更有效率、更熟練的開發人員。

推薦閱讀:CocoaChina專題:iOS進階開發,從Xcode開始

 


博文logo-01.jpg

相關文章
相關標籤/搜索