xcode自动完成代码 Code Snippet Library

今天发现Xcode里一个好东西:代码片段库

你可以将自己常用的代码放到里面,给它命名,设置快捷键,以后想用这段代码的时候只要按快捷键,就会出现提示,直接将这段代码显示出来,十分高效。

比如我经常会用到一个动画:
[UIView beginAnimations:@"EaseIn" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:0.5];
[UIView commitAnimations];

每次使用这个动画的时候,就会重复写上这么几行代码。本人比较懒,每次都去之前的项目里Copy过来,不喜欢自己写,有了这个Code Snippet Library就方便多了。
在菜单栏中选择view -> Utilities -> Show Code Snippet Library,Xcode右下角就会出现
xcode自动完成代码 Code Snippet Library
里面已经内置了一些代码段,不过很少我能用的到的。我想添加一些我常用的代码段。
在编辑器中选中上面的代码段,直接拖到Code Snippet Library里,在列表最后一行就多了一项。
双击或者右键单击此行,显示该项所表示的代码段
xcode自动完成代码 Code Snippet Library

点击左下角“Edit”按钮进行编辑
xcode自动完成代码 Code Snippet Library

这里面有多个属性可以编辑,最主要的两项:标题和快捷键,决定了你用什么方式找到它。比如我定义,点快捷键V时,就会出现此段名为“ViewAnimations”的提示,如下图。
xcode自动完成代码 Code Snippet Library

选择“V - ViewAnimations”这一项,整段代码就显示出来了,是不是很方便?

所谓自动完成功能就是自动完成喽。真是废话,哈哈!自动完成包括两种含义吧,一种是输入字母的时候可以动态弹出一个列表,然后通过选择,提高输入效率,这种好像叫代码提示(Code sense?);另一种就是输入几个字母的时候一回车,呼的一下出来一串儿东西(Code Snippet?),当然了,肯定不会乱出,都是你事先定义好的。记的这个功能在vim里叫作map,而我写php的时候最常用的一个map就是通过ctrl+d输入var_dump。
ok,还是说咱的xcode吧。君不见,当你输入for的时候会自动弹出下面的东东:
xcode自动完成代码 Code Snippet Library
是不是觉得很神奇,好吧,你可能都已经习惯了,都懒的想为嘛会这样了。其实在xcode里,这是个叫作“Code Snippet”(代码片段)的东东。系统中已经有了一个“Code Snippet Library”,秘密都在那里。
xcode自动完成代码 Code Snippet Library
上面的一堆库里,个人觉得有用的就两个,一个是inlineblock,回车以后会自动输入block的格式:

  <#Return Type#>(^<#Block Name#>)(<#Parameter Types#>) = ^(<#Parameters#>) {
    <#Code#>
  };

xcode自动完成代码 Code Snippet Library
block狂人自然不要错过。另一个就是forin了。

  for (<#type *object#> in <#collection#>) {
    <#statements#>
  }

xcode自动完成代码 Code Snippet Library
会自动输入类似php里的foreach语法,好吧,我承认,我原来一直都是用for然后回车,然后再自已修改里面的循环条件,囧一个~
到这里,我希望你对这个玩意儿已经感兴趣了,如果是的话,那咱继续,下面是怎么定义自已的语法。举个啥例子呢,如果你关心本博客的话,你肯定记得上一篇博客《关于查看自已写的方法的“描述”(AppleDoc)》里面有提到注释的格式,你不会真想把格式背下来吧?还是交给xcode来完成吧。设置方法很简单,在xcode里随便打开一个文件,输入

/**
 <#description#>
 @param <#parameter#>
 @returns <#retval#>
 @exception <#throws#>
 */

然后全选,然后鼠标在选中区域
xcode自动完成代码 Code Snippet Library
左键按住不动,让选中的文本处于可拖动状态,然后拖向“Code Snippet Library”正常的话会如下图:
xcode自动完成代码 Code Snippet Library
图上解释的基本清楚了,用法很简单了,当你以后输入doc的时候会自动提示的:
xcode自动完成代码 Code Snippet Library
基本就是这个样子喽,最后说一下Xcode的版本,我的版本是xcode4.5.2,不过个人觉得的上面的功能在xcode4以后应该都是可以用的,如果你用的版本没有这样的功能,那么还等什么,升级撒,功欲善其事,必先利其器嘛。

2012.12.13 补充:
自定义的代码片段存放在:

~/Library/Developer/Xcode/UserData/CodeSnippets xcode

感谢半块烧饼提醒。

相关推荐