一、关于本文档
1、本文档的书写目的
    《iOS项目的命名规范》的书写目的,在于让后续参加到该项目的iOS开发人员通过阅读该文档,了解在当前iOS项目的代码中的命名要求并严格按照本文档执行,以便保证代码的更好阅读与维护。

2、本文档的使用范围
    《iOS项目的命名规范》在iOS项目中被强制要求执行。将本文中的WSF或者wsf替换成代表项目的前缀(请用三个大写字母),即可用于其他iOS项目。

3、本文档的更新负责人
    《iOS项目的命名规范》由本ID和同事共同协商讨论制定,由本ID负责编辑、修改和后续的版本更新。

二、目录结构

三、新建【业务模块文件夹】
1、文件夹的名称需要体现该模块的功能概括。
比如:支付系统、订单

2、二级文件夹根据编程设计模式分类命名,需要从下面词语中取词:
ViewModel、Model、View、ViewController、其他

四、新建【子类】
1、类名
(1)遵循大驼峰命名法。
(2)WSF+模块概括名+功能分区名+父类的惯用后缀。比如:WSFOrderListVC
(3)为了整个项目代码的整洁与统一,建议使用List、Detail、Message、TView、Cell、VC、TVC、VM等字样。
(4)模块概括名一定要是统一的、明确的、唯一的代表模块名称。
(5)父类的惯用后缀的意思是:如果要从其他框架继承子类,那么必须遵循其命名惯例。比如,继承UIView的子类名称必须以View结尾。

2、属性名
(1)遵循小驼峰命名法、避免缩写。
(2)后缀体现属性的数据类型。比如:orderPriceLabel、orderLimitsArray。
(3)使用长的、描述性的命名方向。比如settingButton而不是setBtn。
(4)要求NSString *nameString; 而不是NSString* nameString; 或者NSString * nameString;。

3、属性定义
(1)定义属性的参数顺序排序:原子性、读写、内存管理。比如:@property (nonatomic, readwrite, copy) NSString *nameString;
(2)BOOL类型的属性,需要为其getter方法带is前缀。getter方法放在内存管理限定符前面,比如:@property (nonatomic, readonly, getter=isEditable, assign) BOOL editable;

4、实例变量名
(3)下划线开头
(2)遵循小驼峰命名法、避免缩写。
(3)后缀体现属性的数据类型。比如:_orderPriceLabel、_orderLimitsArray。

5、公有方法名
(1)遵循小驼峰命名法、避免缩写。
(2)不要使用“and”这个词,它不应该用来阐明有多个参数。

6、私有方法名
(1)遵循小驼峰命名法、避免缩写。
(2)直接父类是Cocoa框架:p_开头。
(3)直接父类是其他框架:以自己一贯的前缀(小写)+下划线开头或者wsf_。比如:abc_、wsf_。

7、纯C函数
(1)遵循小驼峰命名法、避免缩写。
(2)加上WSF为前缀。

8、全局变量
.h文件
extern NSTimeInterval WSFPersonModelAnimationDuration;
extern NSString *WSFPersonModelErrorMessage;
 
.m文件
NSTimeInterval WSFPersonModelAnimationDuration = 0.3;
NSString *WSFPersonModelErrorMessage = @“ErrorMessage”;

(1)遵循大驼峰命名法、避免缩写。

9、枚举名
(1)遵循大驼峰命名法、避免缩写。
(2)使用OC的枚举方式。
(3)枚举对象名:WSF+枚举范围概括名+Type。比如:WSFAlipayResultCodeType
(4)枚举种类名:WSF+枚举范围概括名+Type_某种情况名。比如:WSFAlipayResultCodeType_success。

10、协议名
(1)遵循大驼峰命名法、避免缩写。
(2)代理协议:类名+Delegate。比如:WSFOrderListChangedDelegate。
(3)数据源协议:类名+DataSource。比如:WSFOrderListDataSource。
(4)普通协议:类名+Protocol。比如:WSFOrderListVCProtocol。

五、新建【分类】
1、分类名
(1)类名+标识前缀+扩展标识。
(2)遵循大驼峰命名法、避免缩写。
(3)WSF或者自己一贯使用前缀(大写)+下划线为前缀。比如:NSString (WSF_HTTPManager)、NSString(ABC_HTTPManager)。

2、方法名
(1)遵循小驼峰命名法、避免缩写。
(2)wsf或者自己一贯使用前缀(小写)+下划线为前缀。比如:- (void)wsf_urlEncodedString;、- (void)abc_urlEncodedString;

六、新建【协议】
1、协议名
(1)遵循大驼峰命名法、避免缩写。
2、方法名
(1)遵循小驼峰命名法、避免缩写。
(2)如果是代理协议,以发送代理的对象类名作为代理方法名的开始(去掉类名的前缀,并且遵循小驼峰命名法)。

七、新建【第三方库的封装】
(1)手动管理:比如使用MJRefresh框架,需要将它的类名全部加前缀以避免命名空间冲突。比如:命名为WSFMJRefresh。
(2)pod管理:不需要特殊处理。

八、新建【常量】
1、私有常量
.m文件
static const NSTimeInterval kAnimationDuration = 0.3;
static NSString *const kErrorMessage = @“ErrorMessage”;

2、公开常量
.h文件
extern const NSTimeInterval WSFPersonModelAnimationDuration;
extern NSString *const WSFPersonModelErrorMessage;
 
.m文件
const NSTimeInterval WSFPersonModelAnimationDuration = 0.3;
NSString *const WSFPersonModelErrorMessage = @“ErrorMessage”;

说明:
(1)遵循小驼峰命名法、避免缩写。
(2)在声明公开常量时,也可以使用FOUNDATION_EXPORT替换extern。

3、常量名称的常用命名方法:若常量局限于某“编译单元”,也就是“实现文件”之内,则在前面加字母k;若常量在类之外可见,则通常以WSF+类名为前缀。

九、新建【通知】
1、按照公共常量方法处理。
2、以Notification为后缀。

【极力推荐】2018年中秋节两天的良心写作,全面讲解UITextField,总有你不知道的知识:UITextField的使用、介绍、讲解、全解、简介、说明

转载于:https://www.cnblogs.com/cchHers/p/7887579.html

iOS项目的命名规范相关推荐

  1. 项目的命名规范,为以后的程序开发中养成良好的行为习惯

    代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯. 代码编写规范使用范围:J2EE项目开发. 一.包命名规范: 目的:包的命名规范应当体现出项目资源良好的划分 1.s ...

  2. Java 项目的命名规范

    做开发的都知道,一个好的项目规范可以提高开发效率以及后期的维护.自己手上有个项目,里面规范很乱,自己在对它进行二次开发的时候很蛋疼,它没有相应的文档,公司给我的就只有一个项目源码,其中的关系还要自己去 ...

  3. Java开发项目的命名规范+命名方法+注释规范

    一.命名规范 变量Variable 变量名通常以小写字母 a-z 开头.如果变量名由多个单词构成,从第二个单词开始首字母需要大写 A-Z (小驼峰命名法).变量名中不建议使用下划线 _ 作为前缀或者单 ...

  4. Java软件项目开发命名规范_命名规则

    文章目录 一.项目命名/包命名/虚拟目录/资源路径 二.Java 代码命名 三.属性文件 properties 命名 四.xml文件命名 五.jsp文件命名 六.html文件命名 七.js文件命名 八 ...

  5. java 项目名命名规范_javaWeb项目命名规范

    标签: 一.项目结构 这里和其他项目区别不大,我将模板抽离出来,更容易分析和理解: 解释一下:js主要包括extends(引入第三方的js).module(项目模块自己的js).lib(引用包,这里也 ...

  6. 项目、企业文档命名规范

    引言 目的 为了在信息交互过程中避免歧义.提高效率及版本控制的需求,能做到文档.配置项及项目信息的可识别.可追溯和可控制,以此提高公司信息系统的规范性.流程化和扭转效率,特制定此规范用以统一公司输出信 ...

  7. ios项目icon和default图片命名规则

    一.应用图片 标准iOS控件里的图片资源,苹果已经做了相应的升级,我们需要操心的是应用自己的图片资源.就像当初为了支持iPhone 4而制作的@2x高分辨率版本(译者:以下简称高分)图片一样,我们要为 ...

  8. ios: 项目icon和default图片命名规则

    http://www.cnblogs.com/rothwell/archive/2012/05/18/2507570.html 一.应用图片 标准iOS控件里的图片资源,苹果已经做了相应的升级,我们需 ...

  9. day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

    1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...

最新文章

  1. 号和管道符号(|)在不同场景下的使用方法
  2. 孙宏斌,真的押上了全部身家?
  3. java 可以直接当自定义标示符_JAVA 从头开始二
  4. [spark]Spark2.4.6用bulkload写入Hbase1.3.1表的多列
  5. Pascal voc2007数据集
  6. 离线 维基百科 android,iPhone上的离线维基百科(附安装方法)
  7. STM32LCD液晶屏显示二值图片
  8. 2021-08-27小白比记4
  9. Flex布局(弹性布局)-图文介绍
  10. HP deskjet 2132 如何顺利在mac上使用
  11. linux桌面分辨率太高,将Ubuntu调整到高DPI分辨率屏幕
  12. Python基于修正余弦相似度的电影推荐引擎
  13. 【Opencv】Python+openCV实现全景图拼接(左右两张图片拼接成一张全景图)
  14. C65升级与补丁 V25->V43DIY全程
  15. Go 插件系统,一个凉了快半截的特性?
  16. 7-55 Keven裂了
  17. 双足机器人重心在头部_波士顿动力双足机器人Atlas放出逆天体操表演
  18. 交换机(三)接入层、汇聚层和核心层交换机的特点
  19. 如何在LibreOffice中使用所有者和用户密码保护文档和PDF文件
  20. ats系统是什么服务器,ATS系统功能介绍.ppt

热门文章

  1. 苏州大学计算机学院推免流程,【图片】18年苏州大学计算机872考研经验分享【苏州大学研究生吧】_百度贴吧...
  2. xp怎么删除计算机用户,WinXp系统如何删除用户账户?Xp系统删除用户账号的方法...
  3. jackson java反序列化_使用Jackson JSON映射器序列化/反序列化java 8 java.time
  4. 使用Kotlin的Android菜单
  5. 多重搜索算法_Android多重搜寻,例如传送,搜寻联络人
  6. python读取写入文件_Python读取文件,写入文件,打开文件,删除文件,复制文件
  7. Java的Redis连接池代码
  8. RedisSingleUtils 工具类
  9. ios官方菜单项目重点剖析附项目源码
  10. WordPress配置