模板类的创建和详细探究


项目中我们创建一个控制器的时候,可能需要它遵守一些规范,比如不同的方法要分类,如下面

图1

解决方案有三种 :

1 一个一个写这些方法分类标志

2 将它们做成代码块,每次需要的时候快捷创建

3 建一个类模板,控制器建成的时候就带有它们

显然第一种方法最笨的,第二种方式也可以,不过我建议的是第三种方式,创建的时候就自带这个分类,多方便,下面主要讲一下第三种方式

要创建一个模板类,首先我们来看一下系统的模板类,进入目录

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source

图2

因为我们要建的是控制器的模板,所以我们就来看一下系统控制器UIViewController的模板

UIViewControllerXIBObjective-C和UIViewControllerObjective-C,一个带xib的一个不带xib的,其实你比较两个就会知道,他们的.h和.m文件是一模一样的,只不过一个多了一个xib而已,

我们再来看一下他们的.h文件

图3

1)DATE:标识当前时间;

2)FILENAME:带文件后缀的全名;

3)FILEBASENAME:不带文件后缀的名字;

4)FULLUSERNAME:当前的用户名

6)PROJECTNAME:工程名字;

7)FILEBASENAMEASIDENTIFIER:VC 类名称;

8)IMPORTHEADER_cocoaSubclass:导入的头文件。

这是系统控制器的模板,而当我们建一个控制器时是下面这样的

图4

思考下,系统是怎么通过自己的模板文件到上面的控制器中类名、父类、头文件的映射呢,应该很容易想出,这是一个类似key-value的映射,所以肯定有一个字典来专门配置这些信息,仔细找下就会发现,还是在刚才目录下有一个TemplateInfo的plist文件

图5

打开后,如下,在几个关键地方做了标志,

图6

上图的父类名字,头文件是和图4的父类名字、头文件一一对应的

那么图4的类名是和谁对应呢,看下图

图7

上图的创建时默认的类名、创建时选择的父类和图6的创建时默认、创建时选择的父类是对应的,而类名最终肯定还是自己输入的,那么对应的就是图4的的类名,

而图6的xib配置项中的xib对应的父类名字也和图7的创建时选择的父类是对应的,意思就是你选了那个父类,他在这个配置项中有,那么Also create XIB file这项就能勾选,就能创建对应xib

好了,上面讲了系统的控制器模板类怎么到控制器的映射,那么我们就来自己定义的模板类,

满足下面两点:

1 项目中我们创建的控制器可能都需要继承自一个基类,

2 我们创建控制器后控制器自己就有了方法分类标志,如图1

我们自己建一个模板文件夹还是放到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source路径下

然后把图1的两个控制器文件夹拷贝过来,修改这两个文件夹的名字,改成自己的模板控制器名字,前缀一定要是你要创建的模板类的父类名字,这个一定要改,不然创建控制器的时候是创建不了的因为找不到,而且两个最好都要有,因为它们一个对应有xib,一个对应无xib,你缺少了哪一个的话,那么对应的就创建不了的,比如你缺少无xib的文件夹,那么你创建无xib的控制器时是会创建失败的,同样找不到

图8

然后再把两个文件夹的.m文件改成你想要的模板样式,

图9

那么接着就是关键一步了,修改你自己模板文件夹下的TemplateInfo文件

图10

好了,,明白了原理之后,修改就是这么简单,还有,上面那个DLBuyerBaseController是我项目中的父类,如果是你的话,肯定是要改成你项目中的父类的,demo本文最后会附上,

这是控制器模板,我们再来看下UIView的,平时项目中创建View的时候,每次创建两个.h.m文件后还有创建一个xib和它关联,有没觉得很蛋疼,是吧,那么能不能我搞一个view模板,创建view的时候,可以勾选是否关联xib,其实以前是可以关联的,后来苹果把它屏蔽掉了,不知道为啥,下面我们来看一下怎么搞,其实很简单,只要你明白了上面的原理,如图

图11

自己建一个view的模板文件夹,然后把图5的也就是系统的view两个模板拷贝过来,这里我没有搞父view,所以文件夹的名字都不用改,直接修改TemplateInfo文件

图12

只需要把这一项加进去就可以,就这么简单,再看系统的,它原来的是没有的

图13

好最终创建时效果


图14

本文模板代码https://github.com/aszkj/KJTemplateClass

参考链接

http://mp.weixin.qq.com/s?src=3×tamp=1491791123&ver=1&signature=DtOzsztiQ8h*V14Yl21RkYFlVlw3aMVxFvXi3*f0QNO0tI0xXcn6az6p*6aA*lLe8f1OsHoH7i3NXoPqLtwh0NsVChDA4vk5dk107IunfNm67EiMBz5ZZFT8BTUH83W3aDXdhtDQJGXdmDtWeIAmMDziEL9zEsWzIzHfeezDdDU=

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,713评论 6 342
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,113评论 29 470
  • 我的兄弟非常的诚实、真实、实诚。从小到大,哥哥没有教会你什么,你却一直在用自己那一双用汗水磨练的双手时不时的帮衬我...
    不负杯中茶阅读 339评论 2 3
  • 高 温 文/峙 嵘 你这个瓜婆娘 水都开了,还在 愣烧……
    神洲湘云阅读 161评论 0 1