1. 程式人生 > >Xcode —— 程式碼塊Code Snippets

Xcode —— 程式碼塊Code Snippets

在iOS開發過程中,經常會用到一些相似的程式碼。我們能不能將這些程式碼儲存起來,重複使用呢?回答是可以的。我們來看一下Xcode程式碼片段——Code Snippets。

Xcode的程式碼片段(Code Snippets)建立自定義的程式碼片段,當你重用這些程式碼片段時,會給你帶來很大的方便。

例:建立一個常見的程式碼塊

@property (nonatomic, strong) <#type#> *<#value#>;

其中<##> 作用是佔位,## 之間可以輸入提示文字。

 

 

  •  

常用的:

1.strong:
@property (nonatomic,strong) <#Class#> *<#object#>;
2.weak:
@property (nonatomic,weak) <#Class#> *<#object#>;
3.copy:
@property (nonatomic,copy) NSString *<#string#>;
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.ReUseCell:

static NSString *rid=<#rid#>;  

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

 if(cell==nil){  

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

 }  

 return cell;

9.MainGCD:

dispatch_async(dispatch_get_main_queue(), ^{  
<#code#>  
  });

10.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#>  
});

11.OnceGCD:

 static dispatch_once_t onceToken;  
 dispatch_once(&onceToken, ^{  
<#code to be executed once#>  
 });

自定義程式碼片段:

以Strong為例:
1.在書寫@property屬性的地方寫下如下語句:
@property (nonatomic,strong) <#Class#> *<#object#>;

2.選中上述語句,用滑鼠左鍵拖到 下圖中指示的程式碼片段在Xcode中的區域裡,就新建了一個程式碼片段

1518951-56d8edf5f660204b.png

螢幕快照 2016-09-28 上午11.01.52.png

3.鬆開滑鼠左鍵的同時,會彈出程式碼片段編輯視窗,如下圖所示:

1518951-394fdb2756a05d90.png

螢幕快照 2016-09-28 上午10.56.47.png


圖中從上到下的含義依次是:
①Title
程式碼片段的標題
②Summary
程式碼片段的描述文字
③Platform
可以使用程式碼片段的平臺,有IOS/OS X/All三個選項
④Language
可以在哪些語言中使用該程式碼片段
⑤Completion Shortcut
程式碼片段的快捷方式,例:copy
⑥Completion Scopes
可以在哪些檔案中使用當前程式碼片段,比如全部位置,標頭檔案中等,當然可以新增多個支援的位置。
最後的一個大得空白區域是對程式碼片段的效果預覽。
一切設定完成以後,點選該選單右下角的Done按鈕,新建工作就結束了。

程式碼片段備份:

Xcode中的程式碼片段預設放在下面的目錄中:

~/Library/Developer/Xcode/UserData/CodeSnippets