其实我们在编程的时候经常会使用到代码块,只不过是系统已经封装好了,比如dispatch、init及其衍生,根据需要我们经常只需要打入几个关键单词,按下回车,系统就会直接写好整套代码的实现,其实系统就是使用了封装好了的代码块,我们可以在xcode右边看到系统封装的一些代码块,如下图所示
从这里我们可以看到有一些我们经常会使用到。
代码块能够有效的提高编程效率,减少编程时间,本帖主要记录了一些常用的代码块的设置和编写。
一、代码块的定义
我们先定义一个最简单的代码块,在属性定义的位置我们写下如下代码
@property(nonatomic,strong) <#Class#> *<#object#>;
然后选中代码,将其拖到xcode右边code snippets处(就是图1显示处)
如上图所示,拖动结束后会弹出代码块的编辑界面,其中
title对应代码块的标题,summary类似描述,platform是适用环境,completion shortcut是快捷输入,最后一个是该代码块适用范围
上图是我的设置方式,设置完成后done,然后在对应位置输入快捷代码,选中回车就直接补完
到这里,一个简单的代码块定义就完成了,除了strong之外还可以设置assgin、copy、delegate、block等。
二、常用代码块
1、属性
@property(nonatomic,strong) <#Class#> *<#object#>;
@property(nonatomic,assign) <#Class#> <#property#>;
@property(nonatomic,copy) NSString *<#name#>;
@property(nonatomic,weak)id<<#protocol#>> <#delegate#>;
@property(nonatomic,copy) <#Block#> <#block#>;
@property(nonatomic,copy) <#class#> (^<#block#>)(id<#object1#>,...);
2、类的创建
2.1 单例
static<#class#> *singleClass =nil;
+ (instancetype)shareInstance{
staticdispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
<#code to be executed once#>
});
return<#expression#>
}
2.2 cell的创建
staticNSString *reuseID = <#property#>;
<#class#> *cell = [tableView dequeueReusableCellWithIdentifier:reuseID];
if(!cell) {
cell = [[<#class#> alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseID];
}
2.3 tableView快捷创建
-(UITableView *)tableView {
if(!<#tableview#>) {
<#tableview#> = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain];
<#tableview#>.delegate =self;
<#tableview#>.dataSource =self;
}
return<#tableview#>;
}
#pragma tableView--delegate
#pragma tableView
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return<#expression#>
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return<#expression#>
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
staticNSString *identify =@"cellIdentify";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identify];
if(!cell) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:identify];
}
cell.textLabel.text =self.arrayTitle[indexPath.row];
returncell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
2.4 button的创建
UIButton *<#btn#> = [UIButton buttonWithType:UIButtonTypeCustom];
<#btn#>.frame = CGRectMake(100,100,100,50);
<#btn#>.backgroundColor = [UIColor orangeColor];
[<#btn#> addTarget:selfaction:@selector(<#btnClick#>:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:<#btn#>];
其他基本控件的创建类似就不多说了
三、书签、注释类
#pragma mark - <#gmark#>
//TODO:<#info#>
还有一些雷同的就不一一列出来了