1巫糙、認(rèn)識 Xcode 代碼塊
2犹菱、創(chuàng)建 Xcode 代碼塊
當(dāng)然焰望,代碼塊功能之所以強(qiáng)大,是因為你可以創(chuàng)建自定義的代碼塊已亥。
創(chuàng)建代碼塊的過程:用戶拖拽選中文本生成“剪切文本”熊赖。看下實(shí)際操作就很好理解:
用戶將自定義的代碼塊添加到庫里面后虑椎,可以雙擊列表中的塊去編輯震鹉。
- Title 標(biāo)題 - 塊的名字(出現(xiàn)在代碼補(bǔ)全和代碼塊庫列表中)
- Summary 簡介 - 簡單描述下它是干嘛的(只出現(xiàn)在代碼塊庫列表中)
- Platform 平臺 - 限制可訪問該代碼塊的平臺。OS X捆姜,iOS传趾,或者(“全部”)
- Language 語言 - 限制可訪問該代碼塊的語言。常見的有 C泥技,Objective-C浆兰,C++,或 Objective-C++
- Completion Shortcut 輸入碼 - 快捷輸入碼珊豹。常用塊的輸入碼應(yīng)該非常簡練簸呈。Xcode 不會警告沖突 / 重復(fù)的輸入碼,所以一定要確保新添加的不要和已有的沖突店茶。
-
Completion Scopes 有效范圍 - 限制可訪問該代碼塊的范圍蜕便。if / else語句的自動補(bǔ)全應(yīng)該只在方法或者函數(shù)的實(shí)現(xiàn)中有效。下面這些選項可以任意組合:
- 1贩幻、All 全部
- 2轿腺、Class Implementation 類實(shí)現(xiàn)两嘴,范圍為.m文件,
@implementation - @end的范圍 - 3族壳、Class Interface Methods 類接口方法憔辫,范圍為.h文件的方法,@interface - @end的范圍仿荆,指的是定義的方法
- 4贰您、Class Interface Variables 類接口變量,范圍為.h文件的屬性赖歌,@interface - @end的范圍
- 5枉圃、Code Expression 代碼表達(dá)式,Method方法的一部分
- 6功茴、Function or Method 函數(shù)或方法庐冯,指的是調(diào)用的方法,區(qū)別于2和3(定義的方法)
- 7坎穿、Preprocessor Directive 預(yù)處理指令
- 8展父、String or Comment 字符串或注釋
- 9、Top Level 最高層
3玲昧、存儲地址
~/Library/Developer/Xcode/UserData/CodeSnippets/
目錄存放了所有 Xcode 代碼段的文件表示
4栖茉、占位符
在你使用其他代碼塊時你可能已經(jīng)注意到了這些占位符:
在 Xcode 中,占位符使用 <# 和 #>
5孵延、常用代碼塊(第三方代碼塊)
你可以在 Xcode-Snippets 找到一些好用的代碼塊,包括(文件名就是代碼塊快捷鍵)
- tableView數(shù)據(jù)源方法
- tableView代理方法
- 單例
- init方法-
下載此項目XcodeCodeSnippets吕漂,把后綴為.codesnippet拖入代碼塊存儲地址,按標(biāo)題順序分為幾個大類:
- 動畫 Animation - 類擴(kuò)展 Class Extension - Blocks - 調(diào)試打印 DebugLog - GCD and queues(Async) - 通知 Notifications - 日期 Formatting - 方法分組 Section Header #pragma - 表格類代理方法 UITableView or UICollectionView - 生命周期 LifeCycle 補(bǔ)充(這個項目比較完整尘应,但是還是有遺漏惶凝,需要自己增加) - 屬性 Property - 初始化方法 Initialization - 單例
方法二:點(diǎn)擊運(yùn)行下圖的命令行即可自動導(dǎo)入代碼塊,同理犬钢,點(diǎn)擊運(yùn)行ClearSnippets.command可清楚代碼塊苍鲜。
- 補(bǔ)充
去除NS,UI等前綴玷犹,給代碼塊設(shè)置快捷鍵混滔。
為了不和蘋果已有的沖突,或者避免和蘋果已有的混雜在一起歹颓,且簡單坯屿,將前綴(如NS,UI)去除巍扛,調(diào)用最方便愿伴。
eg:關(guān)于所有的通知NSNotification取名為notification,關(guān)于所有的調(diào)試打印NSLog取名為Log电湘。** 屬性代碼塊**
1 Title: Property Assign
2 Completion Shortcut: @strong
3 Completion Scopes: All
4 @property (assign, nonatomic)-
** 初始化方法**
1 Title: Initialization 2 Completion Shortcut: @strong 3 Completion Scopes: Class Implementation 4 - (instancetype)init { self = [super init]; if (!self) { } return self; } - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (!self) { } return self; }
6隔节、同步備份
- 使用ACCodeSnippetRepositoryPlugin插件
- 將代碼塊打包鹅经,拷入其他電腦Xcode中