ios开发编写规范总结

对于一个IT团队来说,代码的规范性是至关重要的,如果你的码友看你的代码比较费劲,那你就需要自省了。本人参考(苹果官方推荐的代码编写规范性)和(pjk1129的博客),总结了以下几点,仅供参考。


命名

命名规则对于维护代码来说是非常重要的,。Objective-C方法名往往很长,不过这也有好处,让很多注释变得毫无意义。
本文推荐驼峰法。
驼峰法分小驼峰法和大驼峰法。小驼峰法:除第一个单词之外,其他单词首字母大写。大驼峰法相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。

*1. 清晰
即清晰又简洁是最好的了,但简洁不如清晰重要。尽量不要使用单词的简写,除了非常常用的简写以外,尽量使用单词全称。API的名称不要有歧义,一看你的API就知道是以什么方式做了什么事情,不要让人有疑问。

*2.类命名
类名(不包括类别和协议名)应该用大写开头的大驼峰命名法。类名中应该包含一个或多个名词来说明这个类(或者类的对象)是做什么的。

在应用级别的代码里,尽量不要使用带前缀的类名,每个类都有相同的前缀不能提高可读性。不过如果是编写多个应用间的共享代码,前缀就是可接受并推荐的做法了(型如 JKPhotoBrowser ),注:尽量不要使用自己名字全拼的首字母来作为前缀。

示例1:

@interface ImageBrowseView :UIView

@end

示例2:(带前缀JK)

@interface JKPhotoBrowser :UIView

@end

*3.类别命名
类名+标识+扩展(UIImageView +MY+Web)

例:如果我们想要创建一个基于UIImageView 的类别用于网络请求图片,我们应该把类别

放到名字是UIImageView+HPWeb.h的文件里。UIImageView为要扩展的类名,MY为专属标识,Web为扩展的功能。

类别的方法应该都使用一个前缀(型如my_myCategoryMethodOnAString ),以防止Objective-C代码在单名空间里冲突。如果代码本来就不考虑共享或在不同的地址空间(address-space),方法命名规则就没必要恪守了。

类别MYWeb头文件,UIImageView+MYWeb.h如下:

@interface UIImageView (MYWeb)

-(void)my_setImageWithURLString:(NSString *)urlStr;

@end

*4.方法命名
方法使用小驼峰法命名, 一个规范的方法读起来应该像一句完整的话,读过之后便知函数的作用。执行性的方法应该以动词开头,小写字母开头,返回性的方法应该以返回的内容开头,但之前不要加get。

示例:
-(void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

-(instancetype)arrayWithArray:(NSArray *)array;

如果有参数,函数名应该作为第一个参数的提示信息,若有多个参数,在参数前也应该有

提示信息(一般不必加and)

一些经典的操作应该使用约定的动词,如initWith,insert,remove,replace,add等等。

*5.变量命名
变量名使用小驼峰法, 使变量名尽量可以推测其用途属性具有描述性。别一心想着少打几个字母,让你的代码可以迅速被理解更加重要。

* *5.1类成员变量**
成员变量用小驼峰法命名并前缀下划线,Objective-C 2.0,@property 和 @synthesize 提供了遵守命名规范的解决方法

示例:

@interface ViewController ()

@property (nonatomic,strong)NSMutableArray *dataArray;

@property (nonatomic,strong)UITableView *tableView;

@end

@implementation ViewController

@end

* *5.2一般变量命名**
示例:
NSMutableArray *ticketsArray = [NSMutableArray arrayWithCapacity:0];

NSInteger numCompletedConnections =3;

* *5.3常量命名**
常量(预定义,枚举,局部常量等)使用小写k开头的驼峰法,比如kInvalidHandle , kWritePerm
示例:#define kRunAnnotationStartPointTitle @“起点”

typedef NS_ENUM (NSInteger,RunGoalTypeE){

kRunGoalTypeNone       = 0,    //无目标

kRunGoalTypeTime       = 1,    //以时间为目标

kRunGoalTypeDistance   = 2,    //以距离为目标

kRunGoalTypeCalori     = 3,    //以消耗卡路里为目标

};

NSString *const kGroupInfoName =@”name”;

*6.图片命名
原则:

1)采用单词全拼,或者大家公认无岐义的缩写(比如:nav,bg,btn等)

2)采用“模块+功能”命名法,模块分为公共模块、私有模块。公共模块主要包括统一的背景,导航条,标签,公共的按钮背景,公共的默认图等等;私有模块主要根据app的业务功能模块划分,比如用户中心,消息中心等

备注:建议背景图采用以bg作前缀,按钮背景采用btn作前缀(不作强制要求,项目实际负责人根据团队特点确定即可)

公共模块命名示例:

导航条背影图片:bg_nav_bar@2x.png
导航返回按钮:bg_nav_back_normal@2x.png,bg_nav_back_selected@2x.png
标签item背景:bg_tabbar_record_normal@2x.png,bg_tabbar_record_selected@2x.png

私有模块命名示例:

uc——user center

用户中心头像默认图:bg_uc_avatar@2x.png

用户中心顶部默认背景图:bg_uc_top_defaut@2x.png

用户中心底部背景图:bg_uc_bottom@2x.png


总结:

1 下面所有规则对第三方类库无约束
* 所有类、方法、属性等命名,做到见名知意,采用驼峰式命名规则
* 根据资源类型或者所属业务逻辑对项目资源进行分组,使得整个项目结构清晰明了
* 整个项目保持一种代码书写风格(这个风格由团队商量来定),让你的代码变的优雅且简单易懂!
2. 命名规范
* 所有类名称以项目工程开头命名,eg:“XP”、“ZJG”、“SZ”
* 针对不同视图控制器,在末尾添加后缀,eg:

UIViewController 后缀添加“ViewController”
UIView 后缀添加“View”
UIButton 后缀添加“Button”
UILabel 后缀添加“Label”

. 单页代码最好控制在800行以内,每个方法最好不要超过100行,过多建议对代码进行重构
4. 相同的逻辑方法定义避免在多个地方出现,尽量将公用的类、方法抽取出来
5. 删除未被使用的代码,不要大片注释未被使用的代码,确定代码不会使用,要及时删除
6. 删除多余的注释
7. 删除多余的空行
8. 删除未被使用的资源文件
9. 对其他项目中copy过来的代码,根据具体需要更新代码风格,及时删除未被使用的代码
10. 项目中所有Group或者文件名称(图片名字等),不要使用汉字命名,尽量使用英文命名,国内特有名词可以使用拼音。
11. 项目中所有Group都需要在项目目录中存在一个真实的目录,Group中的文件与真实目录中文件一一对应。12. 请在项目中写必要代码的注释
12. 整体代码风格需要统一
* 代码后面的”{“ 不需要单独占用一行
* 逻辑运算符 与 代码之前空一格
例:
if (you are a cool boy){
//do something
}
* “#pragma mark -” 与下面的代码之前不要空行
* 遵循一般性的代码规范
13. 请多使用 #pragma mark - Mark Name 对方法进行分组 eg:
* #pragma mark - View lifeCycle
* #pragma mark - View lifeTerm
* #pragma mark - Init methods
* #pragma mark - Action methods
* #pragma mark - Common methods
* #pragma mark - UIActionSheetDelegate
* #pragma mark - UIImagePickerControllerDelegate
* #pragma mark - UITableViewDelegate Methods
* #pragma mark - UITableViewDataSource Methods
* #pragma mark - UIScrollViewDelegate Methods
* #pragma mark - UITextFieldDelegate Methods
* #pragma mark - UITextViewDelegate Methods

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值