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

2021-02-23 程序猿

來自:CocoaChina

本文由CocoaChina譯者KingOfOnePiece(博客)翻譯

作者:Nathan Hillyer

原文:http://savvyapps.com/blog/xcode-tips-for-the-savvy-ios-developer

譯文:http://www.cocoachina.com/ios/20160205/15233.html

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


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



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

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

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

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

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

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

快捷方式:command+shift+O

用快捷鍵和代碼片段快速編碼

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

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

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

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+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實現文件中,輔助編輯器將會展示文件的頭文件。你也可以調整輔助編輯器來展示基於普通過濾器的文件或者手動導航到某個文件。

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

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

快捷鍵:

使用、編輯斷點以及為其添加不同的Action

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

首先,打開異常/錯誤斷點。每當拋出錯誤或異常時,調試器都要打一個斷點。很多時候應用程式遇到錯誤或異常會導致程序的崩潰,並且我們會被令人厭惡的代碼所糾纏。開啟斷點的時調試器將會在應用程式的邏輯棧上暫停,這對於診斷問題非常有用。點擊這裡查看添加斷點操作。

然後,你可以通過編輯斷點來更高級地使用它。我做過大量的結對編程,發現編輯斷點可以激發開發者的思維。許多人都知道他的功能但不實用,我很幸運在我的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這樣強大的功能,展示代碼在什麼地方以及被誰調用過。這個功能可幫助我弄清楚哪裡會被改變以及如何改變一大塊代碼,而又不破壞別的地方。



通過擴展為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大幅度提高你的效率


Xcode有一個叫做Interface Builder的用於搭建用戶界面的可視化工具。它不要求使用Interface Builder來創建UI,但可以使調整UI這項的乏味任務變得更簡單。Interface Builder的大部分操作都在Xcode的實用工具區,所以知道如何以及何時使用相關部件是很有用的,可使用快捷鍵command+option+0()來打開實用工具區,就能看到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使用經驗,並找出其他方法讓自己成為更有效率、更熟練的開發人員。

●本文編號1449,以後想閱讀這篇文章直接輸入1449即可。

●本文分類「iOS開發」、「工具」,搜索分類名可以獲得相關文章。

●輸入m可以獲取到全部文章目錄發人員。

iOS開發↓

安卓開發

相關焦點

  • iOS開發周報:Xcode 7.3 beta 和 iOS 9.3 beta 發布,是否會帶來教育行業的改變
    Xcode 7.3 beta 發布 (https://developer.apple.com/xcode/download/) :Apple 發布了新的測試版本的開發者工具。Xcode 7.3 中包括了像是更完善的自動補全,更智能和全面的編譯器警告提示等。
  • iOS 平臺 Flutter 集成方案
    Liangliang Hu19年加入流利說,畢業於安徽工業大學的 iOS 開發者,熱衷於各種新技術新理念。
  • Mac上有多款 Xcode,如何設置默認的 Xcode
    相信長時間用 Mac 開發的開發者會對一個命令行有印象,那就是 xcode-select。(看名字就知道這東西就是今天的主角。)操作如下:1.先查看當前 Xcode 激活的工具目錄> $ xcode-select --print-path # output: /Applications/Xcode.app/Contents/Developer2.
  • 【appium】appium自動化入門之ios軟體如何測試
    ,本章安裝環境居多,因為ios和安裝環境的去唄,有的配置需要改動代碼如果有不懂的地方記得點擊並輸入暗號:CSDN,提出你的詳細問題(環境截圖),會有大佬給你解答的目錄3.3 啟動 ios 上 safari 瀏覽器前言在 mac 使用 appium去做ios軟體的測試,記得一定一定要保證版本一致。
  • [譯]想成為高級 iOS 開發者?這些資料你不容錯過
    用 VIPER 構建 iOS 應用程式 —— objc.ioobjc.io 出版有關用於 iOS 和 macOS 開發的高級技術的書籍,視頻和文章。依賴注入 —— objc.ioobjc.io 出版有關用於 iOS 和 macOS 開發的高級技術的書籍,視頻和文章。
  • 蘋果被破解,沒有iPhone小白也能玩iOS,搶先體驗!
    《全國計算機二級考試通關秘籍》(▲點擊領取福利)安卓模擬器,相信不少人都知道,在電腦上可以使用安卓app,方便打遊戲和辦公,今天小白和大家推薦一款IOS模擬器,對的就是iphone上的ios系統,現在也能在電腦上用了這款軟體還是我們國人研究出來的,接下來我們一起看看效果怎麼樣小白將模擬器下載到電腦,準備開始安裝(選擇自定義安裝,選擇安裝目錄)
  • 教你如何使用Flutter和原生App混合開發
    /flutter_tools/bin/xcode_backend.sh" embed這個文件的內容在執行pod install的時候會被寫入到xcode build setting中,在執行完pod install之後,可以在原生項目根目錄使用xcodebuild -showBuildSettings|grep flutter 查看相關的信息。
  • 全新設計的Xcode 12
    開發者可以點擊工具欄中的「Any Mac」選項來測試此項功能。在搭載蘋果晶片的新 Mac 上,開發者可以選擇工具欄上的「My Mac (Rosetta)」選項,模擬原生基礎架構或是英特爾虛擬化,來執行並測試 app。在 Xcode 12 中,蘋果還對用戶界面 UI 框架 SwiftUI 進行了改進,除了優化性能還增加了一些新特性。
  • 全新設計的 Xcode 12
    在搭載蘋果晶片的新 Mac 上,開發者可以選擇工具欄上的「My Mac (Rosetta)」選項,模擬原生基礎架構或是英特爾虛擬化,來執行並測試 app。在 Xcode 12 中,蘋果還對用戶界面 UI 框架 SwiftUI 進行了改進,除了優化性能還增加了一些新特性。由於保持了穩定的 API,因此開發者可以輕鬆地將現有的 SwiftUI 代碼引入 Xcode 12。
  • 你還在從AppStore下載Xcode嗎?
    作為一個蘋果生態的開發者,很多時候我們總是要依賴蘋果提供的IDE,當然某人要說我用AppCode,但是AppCode也是要依賴Xcode的一些東西
  • iOS開發|適配iOS10以及Xcode8
    解決辦法是:大家在官網將設備添加進開發機後,陪下描述文件重新下個描述文件即可。等待完成之後的圖- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error{    [self hideHud];}四、代碼注釋不能用的解決辦法這個是因為蘋果解決xcode ghost,把插件屏蔽了。
  • iOS開發 適配iOS10以及Xcode8
    就我的使用來說,總體覺得蘋果還是坑不斷,但是也在一直進步的啦。下面我就來說說,iOS10的適配以及Xcode8使用上的一些注意點。一、證書管理用Xcode8打開工程後,比較明顯的就是下圖了,這個是蘋果的新特性,可以幫助我們自動管理證書。
  • 零代碼,用xcode輕鬆搞定交互動畫-為設計師準備的Xcode教程(3)
    我們知道,APP也是由一個一個頁面構成,每個頁面承載不同的內容和功能,同時這些頁面又是相互關聯和依存的,沒有一個界面能脫離其他界面單獨存在,整個app界面我們把他理解為上圖的一幅幅的「分鏡頭」,再通過某種方式組合起來,就形成了一個完整的app結構。下圖就是靜電在故事版上講的故事。每一個頁面就是一個「場景」,場景之間使用箭頭和連線將一個個的故事串聯起來,形成一個完整功能的「故事」。
  • Xcode 8 有哪些新特性
    ,去創建令人驚嘆的iPhone,iPad,Mac,Apple Watch和Apple TV 應用程式,這從根本上是更快的IDE版本,您可以使用新的編輯器擴展完全定製化你的編碼經驗。使用擴展編輯器的 導航編輯的文本,選擇,修改和改變你的代碼。綁定快捷鍵到你最喜歡的擴展,使普通重複化任務易如反掌。 Xcode中包括一個新的模板,以便您可以輕鬆創建編輯器的擴展並且在Mac App Store分發它們,或與登錄您的開發者ID在線共享您的擴展。由於擴展在一個單獨的進程中運行時,保持Xcode安全穩定。
  • 記一次iOS自動化打包走過的坑-關於React Native-iOS項目
    /$appName"ipaPathWithResigned="$projectTmpBase/ios/${ipaName}"archivPath="$projectTmpBase/ios/build/$configuration-iphoneos/*****.xcarchive"cd $projectTmpBase/iosecho "clean
  • macaca在iOS上的應用
    查看原始碼,發現判斷埠是否佔用的腳本實際上不生效this.proxyPort = yield detect(this.proxyPort);源碼這個原本的意圖是判斷埠時候佔用,佔用時候分配一個新埠,實際上使用的方式不對,導致判斷無效,而且xctest-client 默認使用8900埠,所以不管多少臺ios真機設備,初始化都會是8900,導致錯誤。
  • Xcode 13.0 和 iOS 15.0 適配
    ↓推薦關注↓看了掘友的文章後,今天才升級xcode13
  • 技巧免越獄教你如何修改iPhone屏幕色溫
    該方法需要註冊免費apple開發者帳號,通過xcode把開發的項目安裝入iphone中,無需越獄,和普通app store下載的app一樣穩定使用,也不會破壞系統文件。改屏幕色溫變冷代碼就需要一款:Gamma Thingy 軟體以下是在不越獄的情況下修改色溫算法,安裝Gamma Thingy用以調節色溫的基本步驟:步驟1:安裝xcode,mac用戶前往app store下載安裝,如果你還沒有開發者帳號就前往https://developer.apple.com/membercenter/ ,登陸你的apple id註冊開發者帳號
  • 一個好用的 Xcode 擴展:GHWXcodeExtension
    安裝配置方法1) 將項目 clone 下來,如果不想 clone 項目,直接去 release 下面下載生成的 GHWXcodeExtension.zip,連結 https://github.com/guohongwei719/GHWXcodeExtension/releases/tag/v1.0.0 ,解壓即可,然後跳到第三步,如下圖
  • Xcode 插件優缺點對比(推薦 20 款插件)
    還有就算你使用了這個工具xcode也是需要重啟才能應用插件的並不能把這一步給省了。2、更新插件不管你是用直接download zip的方法安裝插件的還是用Alcatraz安裝的插件如果插件本身沒有最新xcode的支持,那在你的Xcode更新一個版本後,Xcode插件就會失效了。