Xcode8 五分鐘重構(gòu)起步

準備好工具:

  • Xcode 8
  • Git
    注:下文中提及的重構(gòu)相關(guān)專業(yè)術(shù)語,均與《重構(gòu)》一書一致

建立Git版本管理

重構(gòu)會改寫代碼谜酒,甚至代碼結(jié)構(gòu)叹俏,但并不保證重構(gòu)后的代碼能正常編譯,因此在把一切弄的不可收拾之前甚带,需要給自己一個救生圈她肯,Git就是這樣的工具,可以將目標代碼復(fù)原鹰贵。

  1. 轉(zhuǎn)到目標工程的目錄下晴氨,運行:
$git status

查看目標工程是否已經(jīng)在git管理之下,如果返回:



說明當(dāng)前工程沒有配置Git碉输。

  1. 逐條執(zhí)行以下命令籽前,建立版本庫,并將文件都添加到版本庫中
$git init
$git add .
  1. 最后提交當(dāng)前版本:
$git commit -m "init" -a
  1. 這樣,目標工程就置于Git版本管理之下了枝哄,需要恢復(fù)時運行:
$git checkout .

也可以使用Xcode 內(nèi)置菜單(推薦):

Xcode 內(nèi)置一鍵還原菜單

工具1: Xcode 8 重構(gòu)(Refactor)菜單

  • Rename 重命名:顧名思義肄梨,用來重命名類、屬性挠锥、方法以及局部變量名等等众羡,它能夠改寫整個工程所有調(diào)用的地方,當(dāng)改寫類名時蓖租,會同步改好.h.m文件的文件名粱侣,好像是一個智能的,基于調(diào)用上下文(有語義)的 find and replace 查找替換工具蓖宦∑胗ぃ【注:Xcode8該功能只能替換.h.m文件中的對象名,無法替換其它調(diào)用位置稠茂,Xcode7可以全部替換】
  • Extract 提煉:可以將選擇的代碼片段轉(zhuǎn)換成一個新的方法或函數(shù)柠偶,能自動生成參數(shù)和返回值,并調(diào)用新方法替換原來的代碼片段睬关。
  • Move Up 上移 將方法诱担、屬性或?qū)嵗兞恳频礁割悾╯uper class)中。
  • Move Down 下移:你可能以為下移上移的反向操作共螺,可以將方法该肴、屬性或?qū)嵗兞恳频阶宇愔星橹瘢浅2恍颐瓴唬乱?strong>只能移動實例變量,因此并不是很實用秦效!
  • Encapsulate 封裝:當(dāng)需要自定義setget方法時雏蛮,封裝可以自動幫你生成。

工具2:在作用域中編輯

Edit All in Scope ^?E^表示control鍵阱州,下同)

在作用域中編輯

工具3:跳轉(zhuǎn)到定義處

Jump to Definition ^?J 等同 ?+鼠標點擊變量名挑秉,可以快速跳轉(zhuǎn)到變量,方法苔货,類的定義處犀概,需要返回上一編輯處時Go back ^?<-

工具4:快速打開文件

Open Quickly ??O?表示Shift鍵)
這不同于一般的查找,支持在項目中全局搜索夜惭,同時支持文件名和代碼姻灶,并可使用縮略詞,建議代替查找工具诈茧,作為日常定位文件和定義的常用工具产喉。

支持縮略詞查找

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子曾沈,更是在濱河造成了極大的恐慌这嚣,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塞俱,死亡現(xiàn)場離奇詭異姐帚,居然都是意外死亡,警方通過查閱死者的電腦和手機障涯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門卧土,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人像樊,你說我怎么就攤上這事尤莺。” “怎么了生棍?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵颤霎,是天一觀的道長。 經(jīng)常有香客問我涂滴,道長友酱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任柔纵,我火速辦了婚禮缔杉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘搁料。我一直安慰自己或详,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布郭计。 她就那樣靜靜地躺著霸琴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昭伸。 梳的紋絲不亂的頭發(fā)上梧乘,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機與錄音庐杨,去河邊找鬼选调。 笑死,一個胖子當(dāng)著我的面吹牛灵份,可吹牛的內(nèi)容都是我干的仁堪。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼各吨,長吁一口氣:“原來是場噩夢啊……” “哼枝笨!你這毒婦竟也來了袁铐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤横浑,失蹤者是張志新(化名)和其女友劉穎剔桨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體徙融,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡洒缀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了欺冀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片树绩。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖隐轩,靈堂內(nèi)的尸體忽然破棺而出饺饭,到底是詐尸還是另有隱情,我是刑警寧澤职车,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布瘫俊,位于F島的核電站,受9級特大地震影響悴灵,放射性物質(zhì)發(fā)生泄漏扛芽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一积瞒、第九天 我趴在偏房一處隱蔽的房頂上張望川尖。 院中可真熱鬧,春花似錦茫孔、人聲如沸叮喳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘲更。三九已至,卻和暖如春揩瞪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背篓冲。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工李破, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人壹将。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓嗤攻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親诽俯。 傳聞我的和親對象是個殘疾皇子妇菱,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,796評論 25 707
  • 雨露初醒的清晨闯团,天山相接的云端辛臊,山巒疊翠,郁郁蔥蔥房交。這里彻舰,是全國農(nóng)村“三變”改革的發(fā)源地;這里候味,是江南煤都...
    泡面寶寶閱讀 1,383評論 0 2
  • 最近有太多的無奈白群,太多的不自由尚胞,心累,但我還是會努力發(fā)現(xiàn)生活中一點兒一點兒的美好帜慢。
    池淚閱讀 212評論 0 0
  • 牛逼的Redis (REmote DIctionary Server, 遠程字典服務(wù)器辐真。):是開源的、高性能的崖堤、基...
    陳走路Aston閱讀 249評論 0 2
  • ”我保證侍咱,以后盡量不遲到!“餃餃的檢討書上寫的密幔。 餃餃一直有自知之明楔脯,自己從來不是個乖學(xué)生,可怎么發(fā)展成的叛逆少年...
    五可因閱讀 814評論 0 21