你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> 聰明的iOS開發者的Xcode使用技巧

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

編輯:IOS開發基礎

U3834P42DT20120514154017.jpg

  • 本文由CocoaChina譯者KingOfOnePiece(博客)翻譯,敬請指正。

  • 作者:Nathan Hillyer

  • 原文:Xcode Tips for the Savvy iOS Developer


ps:此文原作者贅述太多,譯者據原文摘譯。

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

4673_140225171123_1.png

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

QuickSimplisticLamprey (2).gif

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

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

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

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

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

快捷方式: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+1 command+option+n: 切換實用工具區選項卡

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

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

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

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

  • control+command+Leftcontrol+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鏈接,開始你自己的代碼片段收集:

  • https://github.com/Xcode-Snippets/Objective-C

  • https://github.com/burczyk/XcodeSwiftSnippets

使用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開始


  • 更多譯者翻譯文章,請查看:http://www.cocoachina.com/special/translation/

  • 本文僅用於學習和交流目的,轉載請注明文章譯者、出處和本文鏈接。 

  • 感謝博文視點對本期活動的支持

博文logo-01.jpg



  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved