转载请注明出处http://blog.csdn.net/uxyheaven/article/details/48419963

为什么要定义模板类

遵守代码规范可以提高代码可读性, 降低后期维护成本. 当我们定下了一个团队都认同的代码规范, 如我们要求所有的viewController的代码都得按照下面来组织:

#pragma mark - def
#pragma mark - override
#pragma mark - api
#pragma mark - model event
#pragma mark - view event
#pragma mark - private
#pragma mark - getter / setter
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可落地的时候, 你懂的….

如何要求崇尚自由的developer都按照这个去写,尤其是还得先记下这个规范. 
静态检查是一个办法. Review的时候强制要求改是一种办法. 本文将介绍另外一种办法, 建立模板类.

如何用定义好的模板类

如何用定义好的模板类, 直接看一段动画: 

在建立类模板文件的时候, 把我们定义好的代码组织规范都搬进去. 这样大伙写代码就不会太随意了吧?

模板类如何制作

从头制作一个模板类有些坑. 我们采用简单的办法, 先拷贝一个模板类, 然后修改成自己需要的样子. 
https://github.com/uxyheaven/XYXcodeTemplate这里有笔者建立的一个简单的模板类的模板. 先下载下来, 再修改成你需要的样子, 最后拷贝到Xcode(写这篇文章的时候是Xcode6哦,如果今后目录变了,自行找下)的文件模板文件夹里/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/Folder. 这样就可以使用了.

修改说明

从系统类继承的直接在系统类的文件夹里改

  • 如从UIViewController继承的, 在ViewController里
  • ___FILEBASENAME___.h 里的代码改成你希望的
  • ___FILEBASENAME___.m 里的代码改成你希望的

从自定义类继承的需要做一些额外设置

  • 文件夹的名字改成基类的名字
  • TemplateInfo.plist里的Options -> Item 1 -> Values -> Item 1 的值改成基类的名字

版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS Xcode制作模板类的更多相关文章

  1. iOS Xcode制作模板类-b

    为什么要定义模板类 遵守代码规范可以提高代码可读性, 降低后期维护成本. 当我们定下了一个团队都认同的代码规范, 如我们要求所有的viewController的代码都得按照下面来组织: #pragma ...

  2. iOS - Xcode 配置

    1.Xcode 配置 1.1 OS X 1)main 文件注释修改路径: /Applications(应用程序) ▸ Xcode.app ▸ Contents ▸ Developer ▸ Librar ...

  3. [iOS]封装单例类

    [iOS]封装单例类 今天在学习iOS的SQLite开发,发现在需要使用SQLite的每个视图中,都需要对数据库进行打开或关闭,觉得挺麻烦的:于是在想能否写个单例类对这些操作进行封(因以前一直在使用D ...

  4. iOS 插件制作

    概述 我们平时也使用了非常多的xcode插件,尽管官方对于插件制作没有提供不论什么支持,可是载入三方的插件,默认还是被同意的.第三方的插件,须要存放在 ~/Library/Application Su ...

  5. xcode制作越狱后ipa安装文件

    正常情况下发布测试版给用户需要问到对方设备ID并添加到开发者证书里去感觉有点麻烦,如果是已越狱过的机器可以使用xcode制作ipa文件,并直接用itunes同步进去,这样方便多了. 将运行目标选为iO ...

  6. iOS/Xcode异常:no visible @interface for XXX declares the selector YYY

    在iOS/Xcode开发过程中,出现如下异常信息: no visible @interface for XXX declares the selector YYY 分析原因: There are lo ...

  7. ##xcode 文件模板自定义

    xcode 文件模板自定义 在使用xcode内部模板创建C++类文件时,创建出来的头文件是.hpp结尾的,但是我想用.h结尾的, 所以就网上找了下资料看能不能自定义模板,这样还可以修改文档注释.在网上 ...

  8. iOS中处理时间的类

      登录|注册     sakulafly的专栏       目录视图 摘要视图 订阅 Markdown博文大赛清新开启    天天爱答题 一大波C币袭来    中国云计算大会演讲议题公布     大 ...

  9. 单链表的C++实现(采用模板类)

    采用模板类实现的好处是,不用拘泥于特定的数据类型.就像活字印刷术,制定好模板,就可以批量印刷,比手抄要强多少倍! 此处不具体介绍泛型编程,还是着重叙述链表的定义和相关操作.  链表结构定义 定义单链表 ...

随机推荐

  1. dvwa 源码分析(二) --- dvwaPage.inc.php分析

    在setup.php中,包含了这个文件,所以这里分析这个文件. <?php if( !defined( 'DVWA_WEB_PAGE_TO_ROOT' ) ) { define( 'DVWA S ...

  2. 创建Ajax对象

    针对不同版本浏览器插件Ajax对象. <script> function createAjax(){ var request=false; //window对象中有XMLHttpReque ...

  3. 【WPF】MVVM动态修改Bingding的另一种思路——用Style样式

    问题场景: 界面上有个ListBox控件,它的内容Item绑定了一个列表,即 ItemsSource =”{Binding StudentList}”.这个StudentList列表在该界面View对 ...

  4. Android——FileOutputStream与openFileOutput()的区别分析【第一个用于文件存储,第二个用于SD卡存储】【转】

    本文实例分析了Android编程中FileOutputStream与openFileOutput()的区别.分享给大家供大家参考,具体如下: openFileOutput() 首先给大家介绍使用文件如 ...

  5. nfs服务器与客户端配置

    服务器端(PC)配置 ubuntu提供两种NFS服务器:一种以内核模块形式提供,nfs-kernel-server:一种以用户空间程序形式提供,nfs-user-server;两种择一即可.1. 安装 ...

  6. SQL SERVER 2005快捷键

    一.SQL SERVER 2005快捷键 快捷键 功能 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 ...

  7. js 延时

    alert(1);setTimeout(function(){alert(2);}, 1000);setTimeout(function(){alert(3);}, 2000);

  8. ViZDoom安装

    官网:https://github.com/mwydmuch/ViZDoom/blob/master/doc/Building.md 环境:ubuntu16, python2.7, Anaconda2 ...

  9. (转)typedef 函数指针的用法

    typedef 函数指针的用法   在网上搜索函数指针,看到一个例子.开始没看懂,想放弃,可是转念一想,这个用法迟早要弄懂的,现在多花点时间看懂它,好过以后碰到了要再花一倍时间来弄懂它.其实很多时候都 ...

  10. erlang 自定义函数的初步应用

    一.模块内调用 1> AA=fun(BB)-> io:format("this is test args ~s~n",[BB]) end.#Fun<erl_eva ...