原文:http://www.icodeblog.com/2011/12/06/using-xcode-4-snippets/
最近,我偶然看到 这篇文章 , 对Xcode4的 Snippets产生了极大的兴趣。在此之前,我从来不知道什么snippets。读了那篇文章后,我开始使用它们,并创建了自己的snippets。如今,我的工作效率提高了一大截。
下面这个例子,演示了snippets的强大之处。
键入:ttt
snippets将会自动为你生成如下代码:
#pragma mark - UITableView Datasource - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 10; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; if(cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; } cell.textLabel.text = [NSString stringWithFormat:@"Cell %d", indexPath.row]; return cell; } #pragma mark - UITableView Delegate methods - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { } |
看到了吗?仅仅敲3下键,就可以得到一个带有数据的、立即就可运行的tableview委托方法实现。
本文从另一个角度介绍Xcode4 的snippets,主要演示如何创建snippets并将之和团队成员共享。
在Xcode中添加Snippet
我觉得,这个工作非常不直观。snippet库隐藏得太深了。要把它找出来,首先确认Xcode的右边栏是可见的——如果不可见,可能需要点击view面板工具条(Xcode右上角)上最后一个按钮。
在右边栏可见的情况下,点击面板底部的 “{}” 按钮。这将打开snippet库。
可以随便查看Xcode自带的一些snippets。但绝大部分时候它们不是很有用。我觉得苹果工程师们是不是“太”聪明点了?需要我花一点时间才能说清楚如何去添加一个snippet。你可能以为会有“+”号按钮或者别的什么按钮存在。实际上,只需将一段代码直接拖到snippet库窗口即可。
一旦你将代码拖到snippet库,它会创建一个默认名为“My CodeSnippet”的snippet。再次重申,这真的很不直观。然后,你需要双击My Code Snippet,然后点击Edit按钮才可以修改它。
讲一下其中一些重要的地方:
加入动态字段
你可能注意到,许多苹果自动生成的类或snippets(比如UIAlertView),会有一些“气泡”,暗示了你应该填充的数据的具体类型。而且你可以用tab键在它们之间切换。要创建自己的气泡,可以在你的代码中使用:
<#Text#>
这里,Text代表你想在气泡中显示的内容。
点击“done”按钮,你就可以使用你的snippets了。
共享 Snippets
Xcode并没有导出Snippets的按钮,所有的snippets就放在了这里:
~/Library/Developer/Xcode/UserData/CodeSnippets/
这意味着你必须手动将它们共享给其他开发者(将它们打包并email),或者将这个文件夹置于版本控制(比如git)之下。我更喜欢后者。只要有开发者添加了新的snippet,其他人就可以去pull下来,然后重启Xcode,就可以看见新的snippet。
结论
剩下的问题就是自己去实际使用snippets了。熟悉它可能需要一点时间,但我相信你最终会满意的。通过下面的链接,可以下载到我正在使用的一些snippets,解压缩后将它们放到我说的地方。
我的 Snippets