现在编程也逐渐开始可视化了,譬如使用storyboard只需拖拖拽拽就能实现许多功能,省去了许多代码,苹果官方也极力推荐这样的方式,我们也逐渐习惯了视图控件搭配AutoLayout来构建UI界面,效率提高不止一点两点。However!作为软件开发工程师——据说最近都流行这么称呼,我们绝大多数的时候还是与代码交互。不过好在"一切皆对象,凡事可封装",在Xcode中,我们有Code Snippet Library来管理复用代码块。
代码复用
在面向对象语言当中,“==类封装==”是实现模块化代码复用最常用的方式,除此之外,对于一些非模块化的常用代码呢,我们以往最常用的复用方式想必就是command + c
、command + v
了,譬如:
各种初始化代码段
- (instancetype)init
{
self = [super init];
if (self) {
<statements>
}
return self;
}
—————————————————————————————————————————————————————————————————————————————————————
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
<statements>
}
return self;
}
GCD的C语言代码块
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<delayInSeconds> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
<code to be executed after a specified delay>
});
—————————————————————————————————————————————————————————————————————————————————————
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
<code to be executed once>
});
循环、枚举等代码块
typedef enum : NSUInteger {
<MyEnumValueA>,
<MyEnumValueB>,
<MyEnumValueC>,
} <MyEnum>;
以上的代码是不是很常见,使用频率也相当地高,但我们在Xcode当中使用这些代码块的时候并不需要复制粘贴、而是“手动”敲出来的啊~仔细想想,真是你手动敲出来的吗?其实这是Sinppet Library中默认提供了这些常用代码块。
Snippet Library
认识一下
没错,就在the Object Library,也就是常用的视图控件库旁,想必除此之外的的三栏都常被忽略,其实都可以极大提高编码效率,这里一并介绍下。
文件模板库,新建所需文件时拖入到工程文件导航栏快速创建
控件对象库,使用IB时经常用,值得一提的是,记得里面还有各种手势
媒体资源库,使用图片、音频资源时无须切换到xcassets中,在这里可以快速查看到
言归正传,自定义Code Sinppet
Snippet中默认了诸多常用代码块,我们可以大致浏览看看,以便日后使用快速调用。这里重点要知道的是如何添加我们自己定义的常用代码块。
1、打开Code Snippet Library后,选中一段需要添加的代码块
2、选中新产生的代码块
My Code Snippet
并点击Edit
进行自定义编辑
3、自定义Title、Shortcut,并编辑需要动态修改的条目
- Title:代码块的标题名称,以便识别,如:
strong属性
- ==Completion Shortcut==:使用代码块时,自动补全的快捷方式,如:
strong
- 为需要动态修改的代码条目添加修饰,如:
<#Type#>、<#name#>
4、点击
Done
,这样就完成了自定义代码的添加
调用自定义代码块
在需要使用时,输入自定义的快捷方式,就可自动补全刚才的代码了
这样,就可以愉快地添加各个strong类型的属性了
参考
是不是觉得确实挺好用的?但还是懒得添加自定义代码块的话,不妨可以去看看Github上的这两个项目:
不过还是拥有属于自己的代码库来得实在,用起来也更灵活。
也可以将其备份一下,供不同电脑使用,以下是自定义Code Snippet库的路径:
~/Library/Developer/Xcode/UserData/CodeSnippets
预告篇
下一章节,将Xcode当中常用的代码操作以及相应的快捷方式归纳整理一番。
网友评论