你會常常須要重構你的代碼,讓它有更好的結構,可讀性或者提升可維護性。Xcode做爲IDE其實提供了一些幫助dev重構的功能。你之前可能沒有注意到,今天我來給你們介紹一下Xcode中提供的這些幫助重構的功能的使用。程序員
我先插一句:有些新手可能不太理解什麼是重構,爲何重構,如何重構。先看這裏——》程序員必讀之:重構:改善既有代碼的設計。eclipse
Xcode提供瞭如下幾個重構功能:函數
Rename設計
Extract3d
Create Superclasscode
Move Up對象
Move Downblog
Encapsulateip
在菜單欄中的位置以下圖:get
在代碼區裏直接右鍵也能出現重構的相關菜單:
下面就分別介紹這些重構功能的使用。
Rename:重命名
幾乎能夠試用全部symbol:類名,方法名,函數名,屬性名等。使用起來很是簡單,選中一個要命名的符號後,選擇rename,就會彈出一個輸入框讓你輸入要想要的新名稱,輸入完成後點擊preview能夠預覽一下。
修改一個屬性名稱後的預覽
Extract:將代碼抽取爲一個單獨的方法或函數
選中一段代碼後(能夠包括註釋),選擇Extract,會分析你選擇的代碼段後自動生成方法簽名。你能夠修改方法名,若是參數、返回值不正確也能夠本身再修改。
若是選擇了function,就是另一種格式:
在預覽時若是發現有些須要調整,能夠直接在預覽框編輯。
下面是抽出一個doubleValue方法的預覽:
Create Superclass:建立父類
這個很好理解了,就是建立一個當前類的父類。要注意的是要選中類名的時候才能成功觸發。
須要注意的是預覽界面最左邊的導航區,選擇中間一個是此次重構會影響到文件列表。能夠點擊到這個tab下查看其它類的改動。
若是有警告,會默認顯示警告的tab。
Move Up & Move Down
Move Up:能夠將一個方法、實例變量移動到父類中去。觸發時和重命名同樣,要選中實例名或者方法名後才能正常使用。在category中不適用。
Move Down:相反,將選中的實例變量移動到子類中。是的,方法就不能移到子類了。邏輯上很難理解爲何是這樣。可是蘋果爸爸就是這麼任性。
Encapsulate:封裝
這是一個使人懷念的詞,多年後看到仍是會想起期末考試裏面向對象三大特色的填空題。
這個的做用是在你選中一個變量後,會自動幫你生成get、set方法。
下面是我將variableStr變量封裝後的預覽:
一些新手可能不太理解這個功能。由於在聲明property時就已經自動生成了get、set方法。因此這個功能應該是有點過期了。
若是用過eclipse的同窗可能要呵呵了,這個咱們懂。
一件悲傷的事
以上這些重構功能並無快捷鍵。
雖然好像有我也記不住啊!
別這樣,白要誰不要。
那麼若是我就是裝逼快捷鍵黨,不想讓別人知道我選用了這個功能怎麼辦呢?
也許全世界你也能夠忘記,至少還有key binding值得你去珍惜:
refactor-keybindings.png