Xcode菜單
Xcode快捷鍵
常用快捷鍵 | 功能 |
---|---|
command + shift + N | 新建項(xiàng)目 |
command + N | 新建文件 |
command + delete | 刪除一行 |
command + Z | 撤銷上一步操作 |
command + / | 注釋 |
command + ] 或者 [ | 前后縮進(jìn) |
command + option + ] 或者 [ | 一行代碼上下移動(dòng) |
command + control + 上下方向鍵 | .h .m 文件切換 |
command + 左右方向鍵 | 光標(biāo)移動(dòng)到行頭或行尾 |
command + control + 左右方向鍵 | 后退和前進(jìn) |
command + R | 運(yùn)行 |
command + B | 編譯 |
command + shift + k | clean緩存 |
shift + 上下?方向鍵 | 選中代碼 |
command + , | 打開(kāi)偏好設(shè)置 |
command + option + Enter | 顯示輔助編輯器 |
command + Enter | 返回標(biāo)準(zhǔn)編輯器 |
command + 0 | 打開(kāi)/隱藏左側(cè)導(dǎo)航區(qū)域 |
command + option + 0 | 打開(kāi)/隱藏右側(cè)工具區(qū)域 |
command + shift + Y | 打開(kāi)/隱藏下方調(diào)試區(qū)域 |
command + shift + o | 彈出快速查找文件窗口 |
command + shift + 0 | 打開(kāi)官方文檔窗口 |
日常開(kāi)發(fā)技巧
修改工程名书释、類名
Xcode 環(huán)境配置
代碼區(qū)樣式設(shè)置
進(jìn)入 Xcode 偏好設(shè)置(快捷鍵 ?
+,
),切換至字體顏色與設(shè)置面板(Fonts & Colors),你可以選擇預(yù)設(shè)的幾個(gè)風(fēng)格,也可以嘗試自定義配色益眉,比如我們要把背景色換成蘋(píng)果綠,則需要把 Background 這一項(xiàng)的 Hex color 值設(shè)置為#C7EDCC :
快速查找、切換文件
當(dāng)你工作在一個(gè)龐大的項(xiàng)目中時(shí)坝初,使用【快速打開(kāi)】功能可以為你提供很大的便利。
具體方法是:打開(kāi) File 菜單钾军,選擇 Open Quickly 子菜單(快捷鍵:?+Shift+O )鳄袍,輸入關(guān)鍵字即可過(guò)濾文件,按回車鍵(?)即可快速打開(kāi)切換到該文件:
快速更改同名變量
- 在代碼編輯區(qū)域吏恭,點(diǎn)擊定位需要更改名稱的變量拗小;
- 打開(kāi) Edit 菜單,選擇 Refactor 子菜單中的 Rename… 命令樱哼。 此命令允許您統(tǒng)一修改文檔中的某個(gè)變量哀九。
- 輸入該變量的新名稱 —> 預(yù)覽 —> 保存。
統(tǒng)一修改某一方法內(nèi)某一變量名
快捷鍵:Cmd + Control +e
- 在方法中搅幅,點(diǎn)擊選擇變量名勾栗;
- 打開(kāi) Editor 菜單,選擇 Edit All in Scope 命令盏筐。 在目標(biāo)區(qū)域內(nèi)編輯全部子菜單围俘。
- 點(diǎn)擊鍵盤(pán)修改變量名,所有同名變量就會(huì)被同步更改。
選中整個(gè)方法體
打開(kāi) Editor 菜單界牡,選擇 Structure 子菜單中的 Balance Delimiter… 命令簿寂。平衡界定符命令能幫助你選擇整個(gè)方法體。
代碼的查找和替換
- 打開(kāi) Find 菜單宿亡,選擇 Find and Replace 子菜單常遂。
- 輸入要查找的關(guān)鍵詞和要替換的新名稱。
- 你可以選擇替換當(dāng)前的代碼和所有符合的代碼挽荠。
將代碼段提取為方法
- 拖動(dòng)選中需要提取的代碼克胳;
- 打開(kāi) Edit 菜單,選擇 Refactor 子菜單中的 Extract… 命令圈匆。此命令允許您將一段代碼轉(zhuǎn)化為一個(gè)方法漠另。
- 輸入新建的方法名稱 —> Preview預(yù)覽 —> 保存。
提取后的結(jié)果:
- (void)addImage {
UIImage *image = [UIImage imageNamed:@"github"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:imageView];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self addImage];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
代碼自動(dòng)補(bǔ)全
這個(gè)是最常用的方法了:
- 打開(kāi) Editor 菜單跃赚,選擇 Show Completions 命令(快捷鍵 ESC )笆搓。
- Xcode就會(huì)列出所有可能的方法供我們選擇。
代碼方法塊的折疊
先定位到某一方法體中纬傲,打開(kāi) Edit 菜單满败,選擇 Code Folding 子菜單:
- Fold / Unfold :折疊/顯示當(dāng)前方法體中的所有代碼行;
- Fold / Unfold Methods & Functions :折疊/顯示所有方法體中的所有代碼行叹括;
- Fold / Unfold Comment Blocks :折疊/顯示注釋塊算墨;
- Focus Follows Selection :專注于當(dāng)前方法體。
代碼整潔小技巧#pragma mark
pragma 預(yù)處理指令的兩個(gè)作用:
- 整理代碼汁雷;
- 防止編譯器警告米同;
#pragam mark 一般是寫(xiě)在方法與方法之間的預(yù)處理指令,類似于起注釋說(shuō)明作用摔竿。
但是面粮,重要的是,使用 #pragam mark 預(yù)處理指令可以將方法按照功能分組继低,使代碼更整潔熬苍、更具有邏輯性。而且查找起來(lái)也非常方便袁翁。
#pragam mark 不會(huì)對(duì)代碼本身起任何作用柴底,但是Xcode會(huì)根據(jù) #pragam mark 組織文件中的方法。使用 #pragam mark 后粱胜,代碼編輯器中的跳轉(zhuǎn)欄是這樣顯示的:
使用方法
* 添加分割線
pragma mark —
* 添加功能說(shuō)明
pragma mark 自定義的方法
* 同時(shí)添加分割線和功能說(shuō)明
pragma mark — 自定義的方法(注意留空格)
推薦的代碼組織方式:
經(jīng)常使用 #pragam mark 柄驻,可以使代碼更加清晰有條理。一旦之后需要重新審查代碼焙压,就會(huì)感受到事先使用了 #pragam mark 的好處鸿脓。
推薦閱讀
-
nshipster: #pragma
紐約時(shí)報(bào) 移動(dòng)團(tuán)隊(duì) Objective-C 規(guī)范指南 - Objective-C編碼規(guī)范:26個(gè)方面解決iOS開(kāi)發(fā)問(wèn)題
- 禪與 Objective-C 編程藝術(shù) (Zen and the Art of the Objective-C Craftsmanship 中文翻譯)
- OC代碼規(guī)范總結(jié)
- iOS中書(shū)寫(xiě)代碼規(guī)范35條小建議
使用代碼片段庫(kù)
代碼片段
抑钟,顧名思義,就是一“塊”嵌入的代碼框架野哭,提前將所需的代碼框架放入代碼片段庫(kù)在塔,可能發(fā)生改動(dòng)的地方用代碼補(bǔ)全占位符代替,使用時(shí)拨黔,用自定義的字符串觸發(fā)相應(yīng)代碼片段蛔溃,在占位符處填寫(xiě)所需代碼即可完成高效率的開(kāi)發(fā)。
代碼片段使用示例 init:
:
如果在某個(gè) Objective-C 的實(shí)現(xiàn)文件中輸入 init
篱蝇,Xcode 就會(huì)自動(dòng)列出一組備選項(xiàng)贺待,其中包括 init
方法。選擇后零截,Xcode 就會(huì)在當(dāng)前位置加入一段 init
方法的默認(rèn)實(shí)現(xiàn)代碼麸塞。
代碼片段庫(kù)(Code Snippet Library)位于 Xcode 的工具區(qū)域(快捷鍵:??0)庫(kù)面板選擇條中的第二項(xiàng)。
直接打開(kāi)工具區(qū)域和代碼片段庫(kù)面板的快捷鍵:???2
在代碼片段庫(kù)中瞻润,Xcode 自帶的代碼片段是只讀的,不能編輯甜刻,但是我們可以創(chuàng)建自定義的代碼片段绍撞。
添加自定義代碼片段
編輯窗口
編寫(xiě)好你的代碼片段之后,將選中的代碼段拖拽至代碼片段庫(kù) Code Snippet Library 中的編輯窗口如下:
標(biāo)題 | 說(shuō)明 |
---|---|
Title | 標(biāo)題 |
Summary | 描述概要說(shuō)明 |
Platform | 平臺(tái):All/ iOS/ Mac OS/ TV OS/ Watch OS |
Language | 代碼語(yǔ)言:Objective-C 等 |
Completion Shortcut | 代碼片段的觸發(fā)字符串(在源代碼文件中輸入該字符串后得院,會(huì)觸發(fā) Xcode 自動(dòng)加入相應(yīng)的代碼片段) |
Completion Scopes | 代碼使用范圍:可選類接口部分傻铣、類實(shí)現(xiàn)部分等 |
代碼補(bǔ)全占位符:<#expression#>
自定義的代碼片段
UITableViewDataSource
把如下一段通用的 UITableViewDataSource 方法選中拖拽入代碼片段庫(kù):
#pragma mark - UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return <#number of section#>;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return <#number of rows#>;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:<#@"reuseIdentifier"#> forIndexPath:indexPath];
// Configure the cell...
return cell;
}
編輯如下:
以后在使用 Objective-C 語(yǔ)言編寫(xiě) iOS 項(xiàng)目時(shí),在類的實(shí)現(xiàn)文件中祥绞,輸入 UITableViewDataSource
非洲,就會(huì)列出該代碼片段備選項(xiàng)。
UITableViewDelegate
把 UITableView 委托協(xié)議的兩個(gè)實(shí)現(xiàn)方法加入代碼片段庫(kù):
#pragma mark - UITableViewDelegate
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return <#expression#>;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// when selected row of indexPath
}
cellReusreIdentifier
static NSString * const cellReusreIdentifier = @"<#UITableViewCellStyleDefault#>";
處理循環(huán)引用經(jīng)常要用到的兩行代碼蜕径,也可以加入代碼片段庫(kù):
weakSelf
__weak __typeof(self)weakSelf = self;
strongSelf
__strong __typeof(weakSelf)strongSelf = weakSelf;
注釋代碼
你也可以根據(jù)你的喜好將注釋代碼添加進(jìn)代碼片段庫(kù)
/** <#注釋#> */
編輯窗口:
聲明了一個(gè)屬性两踏,要寫(xiě)注釋?當(dāng)然你可以輸入 //說(shuō)明
兜喻,使用代碼片段就可以這么玩了梦染, 輸入 xx
pragma mark
這個(gè)代碼片段可以配合上面剛剛提到的 代碼整潔小技巧#pragma mark 一起使用,美滋滋??
#pragma mark - <#string#>
NSException
子類有自己的指定初始化方法朴皆,但又不想覆蓋父類的指定初始化方法 init
,可以寫(xiě)如下的方法帕识,主要是用來(lái)防止開(kāi)發(fā)創(chuàng)建對(duì)象時(shí)用錯(cuò)初始化方法。
- (instancetype)init {
@throw [NSException exceptionWithName:@"Method Undefined"
reason:@"Use Designated Initializer Method"
userInfo:nil];
return nil;
}
編輯自定義代碼片段
選中代碼片段庫(kù)中需要重新編輯的代碼片段遂铡,在彈出的編輯窗口點(diǎn)擊 Edit
按鈕肮疗,完成后點(diǎn)擊 Done
按鈕。
刪除自定義代碼片段
選中代碼片段庫(kù)中需要?jiǎng)h除的代碼片段扒接,鍵盤(pán) Backspace
或者 Del
并確認(rèn)即可刪除代碼片段伪货。