用好程式碼塊,提供開發效率

weixin_33762321發表於2017-04-27

相信很多開發者在初級階段時都免不了記不住方法等各種各樣的窘境,於是,很多時候,在遇到使用相同控制元件屬性時,苦於記不住其種類繁多的代理方法,就只能照著之前寫過的程式碼再照搬一遍.但是,好在蘋果公司早就已經為開發者考慮到了這一點,在Xcode中為開發者準備好了“快捷方式”——程式碼塊

程式碼塊,顧名思義,就是一“塊”嵌入的程式碼框架,提前將所需的程式碼框架寫入程式碼塊,僅留出可能發生改動的地方用佔位符代替,使用時,以自定義標記的按鍵撥出相應程式碼塊,填寫所需佔位符即可完成高效率的開發。

具體效果如下圖所示:

2615963-4d303d6f3301861a.gif
效果圖
怎麼樣,是不是很炫酷,那麼具體是怎麼實現的呢?
1.首先,我們要現在類當中將我們所需的程式碼寫好,以剛才我所使用的tableView的代理方法為例:
#pragma mark -
#pragma mark - tableView
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return <#expression#>
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
<#classCell#> * cell = [tableView dequeueReusableCellWithIdentifier:<#(nonnull NSString *)#>];
return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return <#expression#>
}

//注:佔位符的書寫格式為<#name#>**
2.寫好程式碼之後,我們找到Xcode的右下角,如圖的方式,找到程式碼塊的存放處
2615963-3b9e132f9d5c2afa.png
看這個圖片
3.這些便是我們存放程式碼塊的地方,Xcode中提前已經準備了一些系統自帶的方法,然後,我們需要做的就是將我們寫好的程式碼全部選中然後丟進存放程式碼塊的地方.
2615963-439827ed2547d2de.gif
注意操作哦
Title就是你這段程式碼在儲存點要給展示出來的名字,圖上標註的地方就是你撥出它所需鍵入的縮寫,隨便什麼都可以,想些什麼些什麼,當然越短越好,這樣,就大功告成了下次需要使用的時候就只需打出你的縮寫,這段程式碼就自己調出來了
4.嘗試撥出你新建的程式碼塊,就如最開始我做的那樣,如果程式碼塊數量不多,也可以直接從儲存點直接將其拖出來使用,像最開始存放時做的一樣,只不過我們是反過來拖出來
5.如果需要對已經存好的程式碼塊進行修改,那麼只需要找到你的程式碼塊,然後單機它,點選edit即可,如果想要刪除程式碼塊,只需要選中程式碼塊,然後輕敲Backspace鍵,彈出選項框時選擇delete即可

這裡我總結了一些常用的程式碼塊

1.copy:
@property (nonatomic,copy) NSString *<#string#>;
2.strong:
@property (nonatomic,strong) <#Class#> *<#object#>;
3.weak:
@property (nonatomic,weak) <#Class#> *<#object#>;
4.assign:
@property (nonatomic,assign) <#Class#> <#property#>;
5.delegate:
@property (nonatomic,weak) id<<#protocol#>> <#delegate#>;
6.block:
@property (nonatomic,copy) <#Block#> <#block#>;
7.mark:
#pragma mark <#mark#>
8.gmark:
#pragma mark - <#gmark#>
9.warning:
#warning <#message#>
10.ReUseCell:
 static NSString *rid=<#rid#>;

  <#Class#> *cell=[tableView dequeueReusableCellWithIdentifier:rid];

  if(cell==nil){

  cell=[[<#Class#> alloc] initWithStyle:UITableViewCellStyleDefault      reuseIdentifier:rid];

  }

  return cell;
11.initObj:
  if(self=[super init]){
<#init#>
  }

  return self;
12.dataFill:
  -(void)dataFill:(<#ModelClass#> *)<#model#>{

<#code#>

  }
13.MainGCD:
dispatch_async(dispatch_get_main_queue(), ^{
<#code#>
  });
14.GlobalGCD:
 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
<#code#>
});
15.AfterGCD:
 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#>
});
16.OnceGCD:
 static dispatch_once_t onceToken;
 dispatch_once(&onceToken, ^{
<#code to be executed once#>
 });
怎麼樣,學會了嗎?

相關文章