在项目开发中,我们经常可以看到如下所示的代码:
- @property (nonatomic, copy) NSString *isbatchapprove;
- @property (nonatomic, copy) NSString *currentResult;
- @property (nonatomic, copy) NSString *strVersion;
- @property (nonatomic, copy) NSString *operateType;
初看一下,没什么问题,但在做项目开发的过程中,实际上是比较麻烦的,因为如下所示的相同内容,我们需要书写多次,无形中给我们的开发增加了工作量。那么有什么办法可以避免这样重复的工作量吗?这就是这里要说的Code Snippets Library。
- @property (nonatomic, copy) NSString
什么是Code Snippets
其实,在项目开发的过程中,我们已经多次享受了Code Snippets 给我们带来的便利,比如下图所示:
当我们输入sw的时候,就会自动的出现后面的这么多内容,按一下回车键,这些内容就自动编写好了。这就是Code Snippets ,目的是使程序员以最快的速度输入常用的代码片段,提高编程效率。该功能从Xcode4开始引入,我们可以在如下地方设置显示Code Snippets:
设置显示后,我们可以在如下地方看到Code Snippet,里面有很多Xcode自带的代码片段,上例中的switch就是其中的一个。双击具体的一个Code Snippet,可以看到该Code Snippet的详情,单击Edit按钮,可以看到更多内容(新建Code Snippet的时候再介绍)
如何新建Code Snippets
通过上面的介绍,对于Code Snippets的好处,大家应该很清楚了。清楚用处之后,大家会有一个问题:XCode中可以自己新建Code Snippets吗?答案是肯定的,下面我们通过引言中的property的创建,来一步步介绍Code Snippets创建的流程。
***步:书写Code Snippets。在声明@property属性的地方写下如下语句:
- @property (nonatomic, copy) NSString *<#name#>;
上面<#name#>的作用,在后面的使用效果中可以知道。
第二步:新建Code Snippets。选中***步中编写的语句,用鼠标左键拖到上图中指示的Code Snippets在Xcode中的区域里,就新建了一个Code Snippets。新建之后的效果如下所示:
【属性说明】
- 1.Title:Code Snippets的标题;
- 2.Summary:Code Snippets的描述文字;
- 3.Platform:可以使用Code Snippets的平台,有IOS/OS X/All三个选项
- 4.Language:可以在哪些语言中使用该Code Snippets
- 5.Completion Shortcut:Code Snippets的快捷方式,比如本文第二部分编写switch代码段用到的sw,在这里,把属性设置的快捷方式设为pc
- 6.Completion Scopes:可以在哪些文件中使用当前Code Snippets,比如全部位置,头文件中等,当然可以添加多个支持的位置。
- 7.***的一个大得空白区域是对Code Snippets的效果预览。
一切设置完成以后,点击该菜单右下角的Done按钮,新建工作就结束了。
Code Snippets的使用
我们有两种方式使用Code Snippets,还是以刚定义的pc属性Code Snippets为例:
方式一:在适当的位置(因为定义代码片段的时候可以设置使用平台,使用语言,使用文件等限制条件),输入pc,即可弹出如下所示提示框。
单击回车,即可出现如下代码:
方式二:直接在Code Snippets部分找到我们需要使用的Code Snippets,用鼠标左键拖动该Code Snippets到合适的位置。
Code Snippets的备份
Xcode中的Code Snippets默认放在下面的目录中:
- ~/Library/Developer/Xcode/UserData/CodeSnippets
我们可以将目录中的Code Snippets备份,也可以将其直接拷出来放在不同的电脑上使用,因此多台电脑之间的协作也毫无压力。
项目开发中常用的Code Snippets
下面是我在项目中经常使用到的一些snippet,仅供参考。
1.Notification Add:添加通知。
2.Notification Remove:移除通知。
3.Notification Post:发布通知。
4.Property Copy:NSString类型的属性。
5.Property Retain:retain属性。
6......循自然之道,抚浮躁之心