
準備好工具:
- Xcode 8
- Git
注:下文中提及的重構(gòu)相關(guān)專業(yè)術(shù)語,均與《重構(gòu)》一書一致
建立Git版本管理
重構(gòu)會改寫代碼,甚至代碼結(jié)構(gòu),但并不保證重構(gòu)后的代碼能正常編譯,因此在把一切弄的不可收拾之前,需要給自己一個救生圈,Git就是這樣的工具,可以將目標代碼復原。
- 轉(zhuǎn)到目標工程的目錄下,運行:
$git status
查看目標工程是否已經(jīng)在git管理之下,如果返回:

說明當前工程沒有配置Git。
- 逐條執(zhí)行以下命令,建立版本庫,并將文件都添加到版本庫中
$git init
$git add .
- 最后提交當前版本:
$git commit -m "init" -a
- 這樣,目標工程就置于Git版本管理之下了,需要恢復時運行:
$git checkout .
也可以使用Xcode 內(nèi)置菜單(推薦):

Xcode 內(nèi)置一鍵還原菜單
工具1: Xcode 8 重構(gòu)(Refactor)菜單
-
Rename重命名:顧名思義,用來重命名類、屬性、方法以及局部變量名等等,它能夠改寫整個工程所有調(diào)用的地方,當改寫類名時,會同步改好.h和.m文件的文件名,好像是一個智能的,基于調(diào)用上下文(有語義)的find and replace查找替換工具?!咀ⅲ篨code8該功能只能替換.h和.m文件中的對象名,無法替換其它調(diào)用位置,Xcode7可以全部替換】 -
Extract提煉:可以將選擇的代碼片段轉(zhuǎn)換成一個新的方法或函數(shù),能自動生成參數(shù)和返回值,并調(diào)用新方法替換原來的代碼片段。 -
Move Up上移將方法、屬性或?qū)嵗兞恳频礁割悾╯uper class)中。 -
Move Down下移:你可能以為下移是上移的反向操作,可以將方法、屬性或?qū)嵗兞恳频阶宇愔?,但非常不幸,下?strong>只能移動實例變量,因此并不是很實用! -
Encapsulate封裝:當需要自定義set和get方法時,封裝可以自動幫你生成。
工具2:在作用域中編輯
Edit All in Scope ^?E (^表示control鍵,下同)

在作用域中編輯
工具3:跳轉(zhuǎn)到定義處
Jump to Definition ^?J 等同 ?+鼠標點擊變量名,可以快速跳轉(zhuǎn)到變量,方法,類的定義處,需要返回上一編輯處時Go back ^?<-
工具4:快速打開文件
Open Quickly ??O (?表示Shift鍵)
這不同于一般的查找,支持在項目中全局搜索,同時支持文件名和代碼,并可使用縮略詞,建議代替查找工具,作為日常定位文件和定義的常用工具。

支持縮略詞查找