Xcode極速代碼,征服Xcode

當談論到iOS開發工具時,有一個確定是全部iOS開發者都熟悉的,那就是Xcode。Xcode是使全部使人讚歎的iOS app成爲可能的驅動力。git

Xcode能幫助咱們完成很是多的事情,可是這也有點讓人頭疼。對於新手來講,可能會以爲Xcode太過繁重了。而對那些有幾年使用經驗的人來講,仍是在不停地學習一些細節來提升生產力。我對新手的建議就是不要想着一下就能學完關於Xcode的全部知識。關注當下最重要的部分,而後再根據經驗慢慢拓展到新的知識。程序員

在本文中,我會提到一些能幫助你提升生產力的內容。這裏面有些內容可能講過就忘了,但有些應該能解決你常常遇到的問題。github

  • 你將會學到如何自定義Xcode來提升生產力shell

  • 你將會學到一些功能來幫助你管理代碼數據庫

  • 你將會學到一些提示來幫助你整體把控工程開發app

Xcode Behaviors編輯器

Behaviors是一種神奇的東西,能讓Xcode根據你的操做,自動執行一些後續操做。想象一下,你正在運行程序,遇到了一個斷點或者錯誤。默認狀況下,Xcode會自動打開調試窗口、在當前標籤頁跳轉到出錯的代碼處,徹底打亂了編輯器。如今咱們經過設置來阻止這種狀況發生。ide

41.png

打開Xcode 偏好設置,能看到一個叫Behaviors的選項卡。在這裏咱們能夠定義不一樣種類的狀態改變時Xcode的行爲,例如當構建開始時Xcode要作什麼、當構建成功或失敗時Xcode又要作什麼。你可讓Xcode播放聲音、打開新的標籤頁、顯示導航等等。函數

針對本例,咱們想要改變app運行時的Xcode的一些行爲。當app由於斷點或錯誤暫停時,咱們想要作如下的事情:工具

  • 播放聲音(Hero音效對我來講不錯,可是你能夠換成其餘的,包括自定義聲音)

  • 顯示debug標籤頁

  • 顯示debug導航

  • 調試區域同時顯示變量和控制檯

42.png

在這裏我選擇打開一個新的標籤頁,是由於不想讓Xcode改變我當前的工做狀態。這樣我就能輕鬆回到以前寫代碼的位置。另外我也沒有關閉Xcode爲調試打開的一些窗格,整個的體驗是集中在單獨的標籤頁中。
你能夠花些時間來探索Xcode其餘的行爲,根據本身的開發風格找到最合適的。你可能以爲Xcode的某些默認行爲很煩人,或許在Behaviors中你就能把它關掉。

管理設備和模擬器

你有沒有想過,你其實能夠管理Xcode中設備下拉框裏的設備列表呢?

43.jpg

再想一想讀取設備中的數據庫,從而驗證表裏的數據是否都設置正確了。你是否還遇到過,Xcode的下拉框裏一個模擬器都沒有了?如今打開Window > Devices。

44.png

在這裏你能看到已鏈接的設備和可用的模擬器。若是你須要添加或移除模擬器,就點擊左下角的+按鈕(移除點擊—按鈕)。若是模擬器都找不到了,你能夠到這來恢復它們。

45.jpg

最後,這裏另外一個有用的功能就是能夠下載app的 container。

47.jpg

過去你可能經過訪問模擬器文件夾來獲取數據,可是真機怎麼辦呢?如今獲取保存的照片、數據庫文件等等都變得很是容易了,你能夠下載一個包含有documents、libarary和temp文件夾的container,這樣就能獲取設備上的數據了。

更新app的顯示名稱

開發者們常常遇到的一個就是,建立的工程顯示的名字不是本身想要的。我常常看到有些人從新命名和重構(refactor)整個工程,來顯示正確的名稱。若是你知道在工程的info.plist裏添加一個key就能改變app顯示名稱了,那你確定很高興。這個key就是Bundle display name。

48.jpg

提升可讀性 & Xcode擴展

如今有不少插件均可以提升Xcode的生產力。一些開發者甚至建立了一些很是好的主題來替換Xcode默認主題。說實話,默認主題看起來仍是挺不舒服的。那咱們怎麼樣才能輕鬆地獲取到這些插件呢?如今就去alcatraz.io,下載一個很是好用的Xcode包管理器吧。

49.png

 

 

下面是用到的一些插件:

  • SCXcodeMinimap:這個插件和Sublime Text中的那個看起來像。它可以顯示一個編輯器的縮略圖,輕鬆地查看、滾動代碼。

  • RevealPlugin:若是你使用Reveal的話,這個插件能快速啓動Reveal。

  • RealmPlugin:Realm的模型對象的模板文件。(譯註:Realm是一個面向移動設備的數據庫。)

  • VVDocumenter-Xcode:幫助你快速生成一個方法的註釋。

  • AdjustFontSize:當你展現代碼時,你可能須要快速放大字體,這個插件能讓你經過command+加減號來調整字體大小。

  • Lin:爲NSLocalizedString顯示代碼補全。

有一個正在開發的本地化插件Rephrase,值得關注。當它發佈以後,就有可能成爲另外一個節約時間的利器啊。

我目前使用的主題是Dusk,我堅信這個纔是默認主題。還有不少顏色主題,你均可以經過Alcatraz來下載。

下載文檔和舊版模擬器

當你安裝了一個新版本的Xcode後,你可能會發現你沒有以前iOS系統的模擬器了。當測試app時這就是個問題了。你能夠在偏好設置中的下載選項卡中安裝舊版模擬器。

你能夠在這下載舊版模擬器,在Window > Devices中管理它們。你還能夠下載Xcode沒有預載的文檔。

50.png

組織源文件

經過源文件上方的一個下拉框,你能查看到全部的屬性和方法。

54.jpg

當你點擊這個位置時,下拉框會顯示這個文件的詳細信息。在源代碼中你還可使用例如// FIXME: 或者 // TODO: 或者 // MARK: 來添加標記。

55.jpg

快速打開文件

有時你可能須要打開一個新文件,但同時還要保留當前文件。有下面幾種辦法。

你能夠打開assistant editor,而後在那裏顯示文件。點擊View > Assistant Editor > Show Assistant Editor。

你能夠雙擊想要打開的文件。這會打開一個新的窗口。

你能夠經過 Option+Shift+點擊,這會彈出一個框,讓你選擇在哪裏打開文件。

56.jpg

跳轉到文檔

能快速跳轉到文檔將會節省不少時間。你可能正在寫UITableViewDelegate,可是不記得全部相關方法。你能夠經過在符號上Command+點擊,快速跳轉到文檔。

生成文檔  Xcode 8  已經自帶了這個功能  你能夠在一個方法前  按住快捷鍵(option+command+/)試一下

下載並安裝插件VVDocumenter-Xcode,你就不用手動寫註釋代碼了。只需輸入三個斜槓///就能快速生成註釋。

57.gif

另外一個好處就是在Xcode的文檔預覽中,這些註釋也能夠顯示出來。在一個方法上Option+點擊,就能預覽文檔。

58.jpg

建立代碼片斷

若是你常常須要輸入格式徹底同樣的代碼,那代碼片斷就頗有用了。例如,我有一個代碼片斷,它能自動填充一個新的tableView或者collectionView類,而且還有我須要的delegate方法。我還有一些小型片斷來幫助我快速生成typealias、singleton、gcd等等的代碼。

要生成代碼片斷,在file inspector中打開snippent panel。

59.jpg

在編輯器中輸入想要建立的片斷。注意,若是須要佔位符的話,輸入 <#placeholder-name#>。選中代碼,按住一秒,而後拖進代碼片斷區域。

60.jpg

而後你能夠編輯片斷來添加更多細節。最重要的一點就是「完成快捷鍵」。在編輯器中輸入該關鍵字,就能選擇片斷了。或者你能夠把代碼片斷從該區域拖到編輯器中。

過兩天我會收集整理我全部的片斷並分享出來。

用Chisel改進調試

Facebook開發了一套LLDB命令來讓調試更容易一些。若是你尚未Chisel的話,如今就去Github安裝。爲了讓你能明白Chisel究竟是幹嗎的,下面我列出了一些我喜歡的命令。這些命令省了我很多時間和腦子去記住那些語法。

  • pviews:遞歸打印key window上的view。

  • visualize:在Mac上的預覽應用中打開UIImage、CGImageRef、UIView和CALayer。

  • show/hide:顯示或隱藏指定的view或者layer。

  • border/unborder:顯示或隱藏view/layer的邊框,從而找到它在哪。

Chisel還有不少命令,在lldb中輸入help來查看內建和用戶定義的命令。

版本編輯器

若是你須要查看一下修改了文件中的那些內容,你能夠利用Xcode內建的版本編輯器,而不是複雜的Git。

61.jpg

你能夠經過點擊右上角的雙箭頭按鈕來快速打開版本編輯器,或者經過View > Version Editor > Show Version Editor來打開。想象一下,有不少不須要提交的測試代碼,在版本編輯器中都會顯示出來,而且能讓你快速放棄這些修改。你徹底能夠用source control的界面來幹這個,但用版本編輯器是最簡單的了。

6個值得記住與設置的快捷鍵

有些快捷鍵默認沒有設置,我建議你打開Preferences > Key Bindings ,根據須要自行修改。

  • Command + / :註釋/取消註釋代碼

  • Command + [ 或者 ] :向前或向後縮進代碼

  • Command + 左右方向鍵:移動光標到行首或行尾

  • Control + s :選擇單詞(譯註:默認沒有設置。Key Bindings 對應的key是 Select Word)

  • Option + Command + e:(根據當前範圍遍佈選中的單詞)(譯註:默認沒有設置,也不知道究竟是個什麼效果。)

  • Option + 左右方向鍵:按單詞移動光標

  • esc:顯示/隱藏自動補全彈出框。

還有不少不少快捷鍵,找到適合你的風格的,活學活用。

要點

在這篇文章中咱們提到了關於你最經常使用到的工具——Xcode的一些內容。我展現的大部份內容都是爲了提升個人生產力。我並非想要追求單純的快(你不會看見我只用一個鍵盤),而是把本身從那些反覆出現的問題中解放出來。當你有更多的經驗時,你就能找到最適合你的方式。這纔是關鍵。看看怎麼樣能把你在這篇文章中學到的內容應用起來吧。

 

 

手指在鍵盤上飛速跳躍,終端上的代碼也隨着飛舞,是的這確實很酷。優秀的程序員老是這麼一羣人,他們不拘於現狀,不固步自封,他們喜歡新奇的事,他們把本身發揮到極致。

指法攻略

放下您鍾愛的鼠標吧,在前行之中它終會成爲你的負累!

簡記:

command 用來導航,控制導航區域

alt 控制右邊的一些東西,好比Assistant Editor,utility editor

Control 編輯區域上的Jump bar的一些交互

  • Command 1~ 8: 跳轉到導航區的不一樣位置

1170656-e3596c49c5b0b5b0.gif

  • Command 0 :顯示/隱藏導航區

2.gif

Command Alt 1~ 6:在不一樣檢測器之間跳轉

3.gif

  • Control Command Alt 1~4: 在不一樣庫之間跳轉

5.gif

  • Control 1~ 6: 在Jump bar的不一樣標籤頁的跳轉。

7.gif

  • Command Alt 0: 顯示/關閉工具區.

  • Command + Enter: 顯示標準單窗口編輯器

  • Command Alt Enter:打開Assistant editor

  • Command Alt Shift Enter: 打開版本控制編輯器

  • Command + Shift + Y:顯示/隱藏調試區

  • Command + Shift + J,可展現當前你在工程導航器中打開的文件

  • Cmd + . 方便地暫停運行iOS模擬器

查找

使用 Command + Shift + Option + F 來打開 Find navigator 的替換模式,若是你嫌麻煩,也可使用 Command + Shift + F 來打開 Find navigator 的查找模式,若是你還嫌麻煩,使用 command + 3 來打開 Find navigator,而後開啓查找或者替換模式,選擇一種最適合本身的方式就好。

1170656-c5494502126dd80a (1).png

Snip20160702_6.png

快速打開

Command + Shift + O能夠直接跳轉到某個方法定義或者指定的代碼文件。喜歡使用鍵盤但不喜歡使用鼠標的人會大愛這個快捷方式。鍵入第一個字母便可快速切換至某個文件或者找到特定的代碼行。好比鍵入vDL,最早展現的結果是帶有viewDidLoad()名的函數。

1170656-f07726dc67b46db0.png

Command + Shift + O

幫助

Command + Shift + 0 (Zero)打開文檔和參考,鍵入代碼中的某個關鍵字,文檔提供了一些額外的資源和示例工程。固然也能夠在變量、類或者方法名上執行Option+雙擊名稱操做,從而更方便地跳轉至文檔。

在類或者方法名上執行Option + Left點擊操做使用內聯幫助可幫開發者快速學習類或代碼片斷的用法。若是點擊了彈出視圖底部的參考連接,那麼就能夠方便地跳轉到Xcode提供的文檔中。

5.png

我的比較中意Option+雙擊名稱操做,畢竟來的直接。

代碼片斷

Xcode的代碼片斷(Code Snippets)建立自定義的代碼片斷,當你重用這些代碼片斷時,會給你帶來很大的方便。

經常使用代碼塊

1.copy:

 

01.png

2.strong:

02.png

3.weak:

03.png

4.assign:

04.png

5.delegate:

05.png

6.block:

06.png

7.mark:

07.png

8.gmark:

08.png

9.warning:

09.png

10.ReUseCell:

10.png

11.initObj:

11.png

12.dataFill:

12.png

13.MainGCD:

13.png

14.GlobalGCD:

14.png

15.AfterGCD:

15.png

16.OnceGCD:

16.png

黑技能(給代碼排序)

17.gif

使用Spotlight來搜索Automator,並打開它;而後點擊File->New,並選擇服務(service)一項;在Actions篩選欄,輸入shell,而後雙擊運行shell腳本;在新添加的服務的菜單欄上,檢查Output replaces selected text;將腳本內容切換至sort | uniq;同時按下command + s,將服務保存爲 Sort & Uniq。

相關文章
相關標籤/搜索