懶人必備神器-Xcode程式碼塊

語言: CN / TW / HK

每天都有新的需求,尤其是那些業務程式碼,都是重複性的勞動,寫的就是莫名的煩躁。但是也沒有辦法,還是要完成工作的。最近就向同事推薦了釋放雙手的神器程式碼塊,這樣就留出多餘的時間幹其他事情。

一、使用Code Snippets

Xcode版本不同這個入口也不同,當前我用的Xcode12的版本是在Xcode介面的右上角,點選+號就會彈出如下介面。其實我們發現系統已經寫好了很多程式碼塊,可以先自己瀏覽觀察下都有哪些程式碼塊,還可以在Snippets欄輸入搜尋你想使用的,並且有OC和Swift兩種語言的程式碼塊

截圖2021-11-09 下午11.54.21.png

比如,發現有個叫"@interface-category"的程式碼塊,在類裡面輸入@interface-category,就會自動生成這個程式碼,這樣是不是效率很高,不用重複的去寫這個功能的程式碼.

  • 輸入的時候有聯想,並且程式碼塊前面都是{}標識的
  • 可以找到想使用的程式碼塊,直接拖拽過來使用

截圖2021-11-10 上午12.03.06.png

截圖2021-11-10 上午8.56.32.png

二、自定義程式碼塊

系統寫好的程式碼塊畢竟不能滿足開發的需求,其實自己也可以新增一些適合自己的程式碼塊,只是要注意命名和系統的名稱有區分,這樣就很容易敲出自定義的。方法也很簡單,選中格式化程式碼,右鍵

截圖2021-11-10 下午5.47.46.png

點選了Create Code Snippet,就會出現這個頁面,主要需要填寫程式碼塊名稱、摘要、程式碼塊簡稱。這個簡稱就是我們敲程式碼,把簡稱輸入系統就會提示相應的程式碼塊

截圖2021-11-10 下午5.50.31.png

這樣我們自定義的程式碼塊就設定好了。例如,我設定的程式碼塊簡稱是xLabel。當敲寫xl時,系統自動提示出現設定的程式碼塊。同樣雙擊,程式碼自動寫好了。

截圖2021-11-10 下午5.53.14.png

自定義的程式碼塊在~/Library/Developer/Xcode/UserData/CodeSnippets,可以進去看到

截圖2021-11-10 上午9.01.39.png

截圖2021-11-10 下午5.54.48.png

三、常用的程式碼塊

平常在開發中,我們有很多經常敲的場景,比如:

  • 屬性的定義,比如宣告一個屬性

``` @property (nonatomic, strong) ;

@property (nonatomic, weak) ;

@property (nonatomic, copy) ;

@property (nonatomic, assign) ; ``` - UI控制元件的書寫,比如UIView、UILabel、UIButton等等

UIButton *button = [[UIButton alloc] init];     button.backgroundColor = ;     button.titleLabel.font = [UIFont systemFontOfSize:];     [button setTitle: forState:UIControlStateNormal];     [button setImage: forState: UIControlStateNormal];     [button setTitleColor: forState:UIControlStateNormal];     [button addTarget:self action: @selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];     [view addSubview:button];

  • 常用的方法,比如UITableView的代理方法

```

pragma mark - UITableViewDataSource

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return ; }

  • (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath )indexPath {     UITableViewCell cell = [tableView dequeueReusableCellWithIdentifier:@"" forIndexPath:indexPath];     return cell; }

  • (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath {

}

pragma mark - UITableViewDelegate

  • (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath {     return ; } ```
  • 等等

__weak typeof(self) weakSelf = self;

只要是經常用到的場景,業務程式碼都可以定義成適合自己的程式碼塊,不要覺得新增的時候麻煩,所謂磨刀不誤砍柴工。整體使用還是比較方便簡單的,這個程式碼塊不會因為Xcode的升級而升級可以放心新增。