背景
每个公司都有自己的代码规范,在代码规范中,一定会有一条是关于代码分割的约定,有了这样的约定,团队合作的时候就会减少一些不必要的代码冲突。因为目前代码合并的工具多数采用的是行和相邻代码对比,当有了代码分割,就会避免多人开发时,把不同方法写到同一行上,日后代码合并就可能会出现冲突。所以就出现了类似ViewController类的约定,入下图:
于是,每当开发人员在创建一个新ViewController时,就要把这一大堆约定拷贝进来。项目开始时每个人都会按步就班地去执行规范,可是当项目后期时,由于需求突然变更或其他原因,导致研发时间缩减,很多程序员会因为忙于开发,而疏忽这些约束,久而久之,就会导致代码面目全非,再无之前的规范。所以,有人就会考虑,是否可以讲这部分工作在创建文件的时候自动完成。答案是肯定的,XCode就可以帮组我们完成这部分工作。
修改模版
Xcode的模板文件有两个位置,一个系统的全局位置,一个用户的自定义位置:
全局位置:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/
以及 : /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates
用户自定义位置:~/Library/Developer/Xcode/Templates/
(用户自定义位置可能需要自己创建Templates文件夹)
Templates文件夹里面有文件模板File Templates和工程模板Project Templates,分别对应创建文件时的选项和创建工程时的选项:
用的最多就是File Templates/Source/Cocoa Touch Class.xctemplate里面的模板, 在这个文件夹中,可以看到UIViewControllerObjective-C、 UIViewControllerSwift、UIViewControllerXIBObjective-C、UIViewControllerXIBSwift,从名字上就能看出来,就是OC与Swift,以及是否用Xib的区别。打开UIViewControllerObjective-C中的____FILEBASENAME___.m文件
其中的一些宏的意义是:
宏 | 含义 |
---|---|
FILENAME | 文件名包括后缀 |
PROJECTNAME | 工程名 |
FULLUSERNAME | 用户的名字 |
DATE | 当前日期,年/月/日 |
COPYRIGHT | 版权 |
FILEBASENAME | 不带后缀的文件名 |
FILEBASENAMEASIDENTIFIER | 不带后缀的文件名 |
可以对文件进行修改,添加不同的代码分割约束。需要注意的是,全局路径下的这个文件是保护的,需要在外部修改,然后覆盖进去。另外,由于XCode升级时,会覆盖安装,所以,一些已经写好的模版会被覆盖,也比较尴尬。
所以一般在自定义路径下创建,以免升级时被覆盖。
修改Plist文件
to continue!~