Xcode 自定義模板實踐

發表於2017-05-05

好久沒來寫文章了,因為生活中有一些瑣事,也因為工作比較忙。今天我們來聊聊Xcode的自定義模板。

為何要自定義Xcode模板

有時候公司會要求一定的程式碼規範,例如控制器中需要用#pragma mark -來分割各個方法們,像這樣:

這樣不僅可以分割程式碼,方便閱讀,而且可以方便找到某個方法:

111608265-14c1a33a378b8a5e

但是每建立一個類就寫一遍這些是不是有點繁瑣呢,這個時候就要用到Xcode的自定義模板功能了。

修改系統模板樣式

Xcode系統模板的路徑是/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/,資料夾裡面有檔案模板File Templates和工程模板Project Templates,分別對應建立檔案時的選項和建立工程時的選項:

121608265-8e1012bf7ebe5fb4

建立檔案介面

1231608265-727c2467d531b57f

建立工程介面

我們用的最多就是File Templates/Source/Cocoa Touch Class.xctemplate裡面的模板。裡面長的是這樣的:

Xcode 自定義模板實踐

Cocoa Touch Class.xctemplate

例如我們今天需要改UIViewController的模板,就需要改其中的UIViewControllerObjective-CUIViewControllerSwiftUIViewControllerXIBObjective-CUIViewControllerXIBSwift。他們的區別從名字上就能看出來,就是OC與Swift,是否用Xib的區別。

我們以OC並且不用Xib為例,開啟UIViewControllerObjective-C中的___FILEBASENAME___.m檔案:

是不是很熟悉,就是我們建立一個控制器後.m裡面的程式碼。其中的一些巨集的意義是:

巨集名 意義
___FILENAME___ 檔名包括字尾
___PROJECTNAME___ 工程名
___FULLUSERNAME___ 使用者的名字
___DATE___ 當前日期,年/月/日
___COPYRIGHT___ 版權
___FILEBASENAME___ 不帶字尾的檔名
___FILEBASENAMEASIDENTIFIER___ 不帶字尾的檔名

這個檔案預設是不讓修改的,我們可以修改他的許可權,或者複製一份到別處,修改完替換原檔案。總之修改其中的內容為:

然後把這個檔案去替換原來的檔案。替換成功後新建一個控制器,就會是我們自定義的結構了,如果沒生效的話,可以重啟下Xcode哦:

新建一個控制器
Xcode 自定義模板實踐

相信到這裡,其他的模板你也一定會改了吧。

使用自定義模板

如果更改系統模板會有問題,就是xcode更新後我們所做的更改就沒有了。
為了解決這個問題,我們可以在~/Library/Developer/Xcode/Templates路徑下新建一個Templates資料夾,再在Templates裡新建一個Custom的資料夾,把系統的Cocoa Touch Class.xctemplate複製進去,然後進行修改就可以了。

這樣在建立檔案的時候,在最下面就會有你自定義的模板選項:

161608265-e5d1f02ca8c1384d

選擇模板

好了,到這裡大家應該都熟悉了Xcode模板的基本使用,快去探索更多高階用法吧!

相關文章