1搓逾、認(rèn)識(shí) Xcode 代碼塊
2霞篡、創(chuàng)建 Xcode 代碼塊
當(dāng)然朗兵,代碼塊功能之所以強(qiáng)大,是因?yàn)槟憧梢詣?chuàng)建自定義的代碼塊。
創(chuàng)建代碼塊的過(guò)程:用戶拖拽選中文本生成“剪切文本”赁豆∧е郑看下實(shí)際操作就很好理解:
Title 標(biāo)題- 塊的名字(出現(xiàn)在代碼補(bǔ)全和代碼塊庫(kù)列表中)
Summary 簡(jiǎn)介- 簡(jiǎn)單描述下它是干嘛的(只出現(xiàn)在代碼塊庫(kù)列表中)
Platform 平臺(tái)- 限制可訪問(wèn)該代碼塊的平臺(tái)愉棱。OS X,iOS朋其,或者(“全部”)
Language 語(yǔ)言- 限制可訪問(wèn)該代碼塊的語(yǔ)言。常見的有 C袱蚓,Objective-C梭稚,C++弧烤,或 Objective-C++
Completion Shortcut 輸入碼- 快捷輸入碼莺戒。常用塊的輸入碼應(yīng)該非常簡(jiǎn)練。Xcode 不會(huì)警告沖突 / 重復(fù)的輸入碼吉嫩,所以一定要確保新添加的不要和已有的沖突用踩。
Completion Scopes 有效范圍- 限制可訪問(wèn)該代碼塊的范圍。if / else語(yǔ)句的自動(dòng)補(bǔ)全應(yīng)該只在方法或者函數(shù)的實(shí)現(xiàn)中有效忙迁。下面這些選項(xiàng)可以任意組合:
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培愁、存儲(chǔ)地址
~/Library/Developer/Xcode/UserData/CodeSnippets/
目錄存放了所有 Xcode 代碼段的文件表示
4、占位符
在你使用其他代碼塊時(shí)你可能已經(jīng)注意到了這些占位符:
在 Xcode 中缓窜,占位符使用 <# 和 #>
5定续、常用代碼塊(第三方代碼塊)
你可以在Xcode-Snippets找到一些好用的代碼塊,包括(文件名就是代碼塊快捷鍵)
-tableView數(shù)據(jù)源方法-tableView代理方法-單例-init方法
下載此項(xiàng)目XcodeCodeSnippets谍咆,把后綴為.codesnippet拖入代碼塊存儲(chǔ)地址,按標(biāo)題順序分為幾個(gè)大類:
-動(dòng)畫 Animation-類擴(kuò)展 Class Extension-Blocks-調(diào)試打印 DebugLog-GCD and queues(Async)-通知 Notifications-日期 Formatting-方法分組 Section Header #pragma-表格類代理方法 UITableView or UICollectionView-生命周期 LifeCycle補(bǔ)充(這個(gè)項(xiàng)目比較完整私股,但是還是有遺漏摹察,需要自己增加)-屬性 Property-初始化方法 Initialization-單例
方法二:點(diǎn)擊運(yùn)行下圖的命令行即可自動(dòng)導(dǎo)入代碼塊,同理倡鲸,點(diǎn)擊運(yùn)行ClearSnippets.command可清楚代碼塊供嚎。
補(bǔ)充
去除NS,UI等前綴峭状,給代碼塊設(shè)置快捷鍵克滴。
為了不和蘋果已有的沖突,或者避免和蘋果已有的混雜在一起优床,且簡(jiǎn)單劝赔,將前綴(如NS,UI)去除胆敞,調(diào)用最方便着帽。eg:關(guān)于所有的通知NSNotification取名為notification,關(guān)于所有的調(diào)試打印NSLog取名為L(zhǎng)og移层。
屬性代碼塊
1Title: Property Assign2Completion Shortcut: @strong3Completion Scopes: All4@property (assign, nonatomic)
初始化方法
1Title:Initialization2CompletionShortcut: @strong3CompletionScopes:ClassImplementation4- (instancetype)init{self= [superinit];if(!self) {? ? ? ? }returnself;}- (instancetype)initWithFrame:(CGRect)frame {self= [superinitWithFrame:frame];if(!self) {? ? }returnself;}
6蜕依、同步備份
使用ACCodeSnippetRepositoryPlugin插件
將代碼塊打包膀估,拷入其他電腦Xcode中
文/只為此心無(wú)垠(簡(jiǎn)書作者)
原文鏈接:http://www.reibang.com/p/6dcf71040978
著作權(quán)歸作者所有梢薪,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)逊彭,并標(biāo)注“簡(jiǎn)書作者”。