IOS编码安全规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
移动端-IOS编码安全规范
一、命名
1、Bundle id命名:
规则:采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名根据应用进行命名。
2、类命名:
1)类命采取驼峰命名规则,即首字母必须大写,如果为词组,则每个单词的首
字母必须大写,类名只能使用名词或名词词组,力求类名简单,不允许出现冗余的单词。
2)继承自UIView的类以View结尾。
3)继承自ViewController的类以ViewController结尾。
4)保存数据的实体以Model结尾。
3、方法的命名:
规则:方法名第一个单词是一个动词,其首字母小写,其后的所有单词首字母大写。
如:public Void threadRun()
1)类中常用方法命名:
类的获取方法
如果返回值为单个值,一般在头部加上单词“get”。如果返回值是数组或列表,要在头部加单词“find”
如:public String getUserName() 、public list
在被访问字段名的前面加上前缀 set
如:public void setName(String name)
●类的布尔型判断方法
一般要求方法名使用单词 is或has 做前缀
如:isNetWorkConnected()
●构造方法应该用递增的方式写。
参数个数少的在前
4、变量命名
规则:第一个单词首字母必须小写,往后的单词需要符合驼峰命名规则,即第一个字母大写。变量名尽可能的使用名词或名词词组。同样要求简单易懂,不允许出现无意义的单词。
如:String userName
避免使用全局变量,如果用到必须加前缀‘ Pub_’,同时需要在变量名体现其类型。
5、成员变量命名
与变量命名一样,在private字段前加上字母“m”。
6、控件变量命名
规则:一般的变量命名后加上控件名称
IBOutlet UILabel *userNameLabel;
7、常量命名:
规则:必须全部大写,单词间用下划线隔开。
如:MAP_KEY
8、异常命名:
规则:自定义异常首字母大写,以 Exception 为结尾。
如:AppException
9、资源命名:
项目中所使用的所有资源命名必须以全部单词小写,单词间以下划线分割,加前缀区分。
二、注释
1、头文件注释:
所有的源文件都应该在开头有一个注释,其中列出头文件的相关描述、作者、以及对应的版本信息。
/*!
@header 头文件名称
@abstract 关于这个源代码文件的一些基本描述
@author作者
@version 1.00 2012/01/20 Creation (此文档的版本信息:版本号+创建时间) */
2、类注释
每一个类都要包含如下格式的注释,以说明当前类的功能等。
/*!
@class 类名
@abstract 这里可以写关于这个类的一些描述。
*/
3、枚举注释
每一个枚举都需要包含相对应的enum描述,以及每个枚举值对应的含义。
/*!
@enum 枚举名称
@abstract 关于这个enum的一些基本信息
@constant 各个对应值得含义,如: OKButton 对应的是OK按钮的Tag
*/
4、协议注释
协议需要注明是哪个类对应的protocol,以及自身的相关描述。
/*!
@protocol 协议名称
@abstract 这是哪个类的protocol
@discussion 具体描述信息
*/
5、方法注释
包括当前方法的用途,当前方法参数的含义,当前方法返回值的内容和对应的错误参照。
/*!
@method 方法名
@abstract该方法的一些简要描述
@discussion该方法的具体使用方式,需要注意的地方,如果你是设计一个抽象类或者一个共通类给给其他类继承的话,在这里需要具体描述一下怎样使用这个方法。
@param text参数列表
@param error 错误参照
@result 返回结果
*/
6、属性注释
/*!
@property 属性名称
@abstract 该Property的一些基本描述。
*/
7、类别注释
/*!
@category 类别名称
@abstract 哪个类的类别
*/
三、代码风格
1、缩进
规则:禁止使用tab进行缩进,缩进为4个空格
2、.h文件空行
可以使用空行的情况:
➢文件说明与头文件包含(#import)之间类声明跟接口声明之间。
➢头文件包含(#import)与@class之间
➢@interface与@class之间
➢头文件{}内,空1行开始写成员对象。
➢头文件{}外,空1行开始写属性。
➢属性与方法之间。
➢方法与@end之间。
➢如果需要声明protocol,空2行接着写。通常protocol写在@end后面,但