iOS 代码规范(未完待续)

2018-09-29  本文已影响0人  我太难了_9527
                                                  ## 远孚代码规范

此文章是适用于笔者的项目

一.命名规范

1.基本要求

(1)含义清楚,尽量做到不需要注释也能了解其作用,若做不到,就加注释
(2)尽量不使用缩写
(3)每个类代码尽量控制在500行以内,每个方法控制在100行以内.

2.类的命名

(1)大驼峰式命名 每个单词的首字母都采用大写字母 且前面字母必须以 YF 开头 如:

YFHomeNearMapViewController

(2)后缀要求 如果是ViewController 就以ViewController当后缀 View 就以View当后缀, tableViewCell 就以 tableViewCell 等等 如

YFHomeNearMapViewController,YFHomeItemView,YFHomeNearTableViewCell

(3)私有变量
● 小驼峰式命名:第一个单词以小写字母开始,后面的单词的首字母全部大写 如

pickGoodsDateEnd,pickGoodsDateStart;

● 以 _ 开头,第一个单词首字母小写 如

NSMutableArray *_imageUrls;

● 私有变量放在 .m 文件中声明

//userName 注释
@property (nonatomic, copy, nullable)   NSString *userName;

(4)宏定义
● 全部大写,单词间用 _ 分隔 如

//常用的宏
#define CODE_ZERO baseModel.code.integerValue == 0

● 按照驼峰命名法(带参) 如

// 设置view的圆角和边框
#define YFViewsBorder(View,radius,width,color)\
\
[View.layer setCornerRadius:(radius)];\
[View.layer setMasksToBounds:YES];\
[View.layer setBorderWidth:(width)];\
[View.layer setBorderColor:[color CGColor]];

//自定义颜色
#define CustomColor(R,G,B,A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]

● 按照驼峰命名法(不带参) 如

//获取设备的物理高度
#define ScreenHeight [UIScreen mainScreen].bounds.size.height
//获取设备的物理宽度
#define ScreenWidth  [UIScreen mainScreen].bounds.size.width

(5) 枚举
● 枚举的命名和类的命名一致按照驼峰命名法
● 枚举内容的命名需要以该Enum类型名称开头,如

typedef NS_ENUM(NSInteger, MANaviAnnotationType)
{
    MANaviAnnotationTypeDrive = 0,
    MANaviAnnotationTypeWalking = 1,
    MANaviAnnotationTypeBus = 2,
    MANaviAnnotationTypeRailway = 3,
    MANaviAnnotationTypeRiding = 4,
    MANaviAnnotationTypeTruck = 5
};

(6) 方法
●方法的命名和类的命名一致按照驼峰命名法 另外方法名需要能完整的说明这个方法是用来干什么的,如果有带参数的参数名也要能体验传入的参数是能起到什么作用如:

/**
 选中哪条数据
 */
- (void)jumpCtrlWithSelectSection:(NSInteger)selectSection selectIndex:(NSInteger) selectIndex;

二.注释

最好的代码是不需要注释的 尽量通过合理的命名
良好的代码把含义表达清楚 在必要的地方添加注释
注释需要与代码同步更新
如果做不到命名尽量的见名知意的话,就可以适当的添加一些注释或者mark
(1) 新建 model 注释 或者成员变量 如

/**
  用户名
 */
@property (nonatomic, copy, nullable) NSString * userName;

//用户名
@property (nonatomic, copy, nullable) NSString * userName;

(2) 方法注释 如

/**
 get 请求

 @param urlString 请求地址
 @param parameters 请求参数
 @param successBlock 请求成功回调
 @param failureBlock 请求失败回调
 */
+ (void)getWithURLString:(NSString *)urlString
             parameters:(id)parameters
                success:(SuccessBlock)successBlock
                failure:(FailureBlock)failureBlock;

三.UI 布局

1.使用纯代码布局 需要是用Masonry进行添加控件之间的约束
2.使用 xib 或者 storyboard 进行页面布局 需要添加约束
目前项目主要采用的是基于AutoLayout的 xib 布局 这个最重要的是不允许添加约束有冲突的约束 如


屏幕快照 2018-09-29 下午3.20.51.png
上一篇下一篇

猜你喜欢

热点阅读