编程的时候,我们需要经常调用一些重复的代码块,比如if-else条件判断、for循环、UIViewAnimation、post notification、add obsever等等。当我们不遗余力的敲击键盘时,却忽略了Xcode中一个十分有用的工具Code Snippet Library。
Code Snippet Library中包含了一些系统提供的code snippet,目的是加快开发和保证代码的完整性。我们可以为一些可重用的代码块创建code snippet,这样在任何需要的地方很容易的就可以使用这些代码块,大大节省输入需要的操作和时间。
下面讲解如何创建一个code snippet。
一、打开Code Snippet Library
图1
按图1操作后,屏幕右下角及显示Code Snippet Library,如图2所示:
图2
二、了解code snippet
图2中每一条都是一个code snippet。打开标题为“Objective-C classImplementation”的code snippet可以看到它的具体内容:
图3
其中:
1、Title是用于在Code Snippet Library中显示的标题;
2、Summary描述code snippet的用途;
3、Platform和Language分别规定code snippet适用的开发平台和编程语言;
4、CompletionShortcut是使用code snippet时的简写;
5、CompletionScopes规定code snippet的作用域。
以上所有信息都是可编辑的,你可以完全按照自己的意愿和使用习惯来设置。
三、创建code snippet
如果你想为以下代码块创建code snippet:
NSNotificationCenter *nc =[NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(notifyKeyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
那么,你只需要选中这段代码,将其拖动至CodeSnippet Library即可。然后,你会看到一个弹窗,如图4所示:
图4
四、编辑code snippet
点击图4中的Edit按钮,对code snippet进行如下编辑:
图5
编辑时需要注意以下几点:
1、Title和Summary要言简意赅;
2、CompletionShortcut要和用途相关且唯一,我习惯取Title的首字母;
3、CompletionScopes是最重要的,定义合适的作用域能够有效防止代码滥用。
为了使code snippet更好的发挥作用,我们希望addObserver函数的各参数均可自由输入,那么可以进行如图6中代码进行如下修改来达到目的:
图6
五、使用code snippet
有两种方法可以调用code snippet:
1、直接拖动codesnippet到需要的位置;
2、在该处输入codesnippet的shortcut,然后点击回车键。
输入ao,可以看到如图7所示:
图7
点击回车键后,可以看到图6中的代码块,整个过程就完成了。
Mac下有一款app也能够实现这种需求,这款app叫Dash。Dash是一个API Documentation Browser和Code SnippetManager。
Dash自带了丰富的API文档,涉及各种主流的编程语言和框架,种类绝对惊人:ActionScript, Android, C++, Cappuccino, Cocos2D, Cocos3D, Corona,CSS, Django, Groovy, HTML, Java, JavaFX, JavaScript, jQuery, Kobold2D, Lua,MySQL, Node.js, Man Pages, Perl, PHP, Python, Ruby, Ruby on Rails, Scala,Sparrow, SQLite, Unity 3D, WordPress, XSLT, XUL。可以通过Dash->Preferences->Dowonloads/Docsets对文档进行管理,十分便捷。
Dash中的snippet使用方法如图8所示:
图8
1、点击图中的+,选择New Snippet,即可得到一个空白的snippet;
2、添加代码块,设置shortcut、language、tag等。
大功告成!
Dash比较让人头疼的地方是,snippet貌似在整个系统中都生效。如果定义了“ao”这个snippet,那么在任何应用总你输入“ao”,甚至不需要点击回车键,都会突然冒出来一大段代码,what a pity!所以在设置shortcut时也要注意,尽量不要使用常用的拼音,否则结果会让你很恼火的!