Xcode7 创建自定义模板

在一个多人开发的项目中,相同的代码风格,不仅增强了易读性,而且调理清晰,容易理解,在后期维护过程中,也容易修改。

因此就想写一个模版。

当然,并不是说用了自定义的模版就一定是好的,有些方法可能是我们不需要的,不想暴漏出来,那么我们可以用代码块的形式去处理。

具体使用,可查看如下连接:
http://www.jianshu.com/p/93527682d8d3

虽然有些许的错误,但是整体流程是OK的。

处理过程

接下来,看处理过程:

  1. 获取模版路径

    系统模版的路径为~/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates,File Templates下包含Apple Watch,Resource,Source,User Interface,四个目录,对应了新增文件时,iOS下的几个分级目录。比如,我们想查看CocoaTouch下对应的内容,我们可以看Cocoa Touch Class.xctemplate这个模版。

    通常情况下,我们会在Source下新增新的模版。

    将 MSTemplate.xctemplate文件夹放到Source系统模板文件夹中,就会在New File时出现在对应的选项中。 在往里面copy文件时,系统会提示你输入管理员密码,输入密码进行处理。

  2. template内容介绍

    MSTemplate.xctemplate 处理的是对UIViewController的模块修改。MSTemplate.xctemplate文件夹包含了

    假设已经将MSTemplate.xctemplate放入了Source文件夹中,查看MSTemplate.xctemplate中有TemplateIcon.png,TemplateIcon@2x.png,TemplateInfo.plis以及UIViewControllerXIBObjective-C文件夹,UIViewControllerXIBObjective-C文件夹内包含三个文件

FILEBASENAME.h,FILEBASENAME.m, FILEBASENAME.xib

(1)UIViewControllerObjective-C 文件夹
用来创建.h 和 .m文件。 其中文件夹的命名规范是[name]+Objective-C. 如果是创建swift修改为swift。

(2)UIViewControllerXibObjective-C文件夹
用来创建.h,.m和.xib文件。其中文件夹的命名规范是[name]+XibObjective-C. swift类似。

(3)TemplateIcon图片
图片是用来显示在New File的菜单上的。任意放一个自己喜欢的图片,像素138*138即可。

(4)TemplateInfo.plist配置文件。下面单独讲讲。

  1. 头文件和实现的说明。

    ___FILEBASENAME___.h代码如下
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
              //
    // ___FILENAME___
    // ___PROJECTNAME___
    //
    // Created by ___FULLUSERNAME___ on ___DATE___.
    //___COPYRIGHT___
    //

    ___IMPORTHEADER_cocoaTouchSubclass___

    @interface ___FILEBASENAMEASIDENTIFIER___ : ___VARIABLE_cocoaTouchSubclass___

    @end
 ___FILEBASENAME___.m 代码如下


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
        //
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//

#import "___FILEBASENAME___.h"

@interface ___FILEBASENAMEASIDENTIFIER___ ()

@end

@implementation ___FILEBASENAMEASIDENTIFIER___

#pragma mark lifecycle

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
}

#pragma mark btn event

//back button clicked
- (void)doBack:(UIButton *)sender{

}
@end

xib 文件可参考系统模版去制作一个。

TemplateInfo.plist

查看简书的描述信息。
主要设置三个值,父类,子类的默认名,是否打开xib。

使用。

创建一个子类,使用MSTemplate,可快速创建一个带有自定义注释子类。

新增模版常见问题说明
  1. 目录查找错误。

    ~/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates,注意Platforms而不是Developer下的Libraty。

  2. 新建模版是显示错误位置。

    可能加入到MAC OS上去了,注意看自己在哪个部分新增模版。

  3. 模板新增成功,但是新增子类时新增不上去。

    新增成功,但是子类加不到prj上,可能是对应的xib文件没有,或者文件没有书写完成,可从系统的template复制一份,再修改代码来实现。

  4. 系统模版的修改。

    这个须特别注意,系统提供的模版不能编辑,没有写的权限,不能在原来的基础上修改。