iOS代码规范

IOS代码规范

一、MVC项目模块结构

├── xxx 主模块
│├── Service 主模块网络请求
│├── Model 主模块模型
│├── View 主模块视图
│└── Controller 主模块控制器
│├── xxx 子模块一
││ ├── Service
││ ├── Model
││ ├── View
││ └── Controller
│├── xxx 子模块二
││ ├── Service
││ ├── Model
││ ├── View
││ └── Controller

二、类命名与继承

1.M命名 :使用 + Model 后缀
继承 :需要存储数据库的模型继承BaseModel
不需要存储数据库的模型继承NSObject
2.V命名 :使用 + View /(具体的控件 如:Button,TableView)后缀
继承 :普通的 View继承UIView
具体控件如果有基类控件继承基类控件
3.C命名 :使用 + Controller 后缀
继承 :继承BaseController
4.S命名 :使用 + Service 后缀
继承 :继承BaseService

三、控件与数据类型命名

1.基本控件与基本数据类型命名

控件缩写_功能名(功能名首字母大写)
类型  命名规范
UIView  iv_xxx
UIButton    btn_xxx
UIImageView imgv_xxx
UITextView  tv_xxx
UILabel lb_xxx
UITextField tf_xxx
NSString    str_xxx
NSMutableArray
NSArray arr_xxx
NSMutableDictionary
NSDictionary    dict_xxx
Bool    is_xxx

2.特殊控件命名

UITableView 统一写 tableView
UICollectionView 统一写 collectionView
UIScrollView 统一写 scrollView

四、控件与数据类型写法排序

无需要传值的话统一定义在 .m文件,需要传值等特殊需求可写在 .h文件
统一排序方式从上到下依次为
(控件、Array、Dictionary、String、Int、float、double、Bool)
@property (nonatomic, strong) UILabel *lb_xxx;
@property (nonatomic, strong) NSMutableArray *arr_xxx;
@property (nonatomic, strong) NSArray *arr_xxx;
@property (nonatomic, strong) NSMutableDictionary *dict_xxx;
@property (nonatomic, strong) NSDictionary *dict_xxx;
@property (nonatomic, copy) NSString *str_xxx;
@property (nonatomic, assign) NSInteger xxx;
@property (nonatomic, assign) float xxx;
@property (nonatomic, assign) double xxx;
@property (nonatomic, assign) BOOL is_xxx;

五、URL 宏定义命名

功能模块名_子功能模块名_URL功能名
正例: #define Account_Login @“Account/Login”

六、颜色 宏定义命名

APP_具体控件Color
正例: #define App_NaviBarColor RGBHex(0xff6440)

七、方法命名

生命周期不变,有特殊需要返回值的自己定义

初始化使用init开头,例如:- (void)initData;
配置界面使用config开头,例如:- (void)configUI;
添加使用add开头,例如:- (void)addImage;
删除使用remove开头,例如:- (void)removeImage;
查询使用query开头,例如:- (void)queryDBData;
刷新使用refresh开头,例如:- (void)refreshData;
打开使用show开头,例如:- (void)showToast;
传值与赋值一样使用set开头,例如:- (void)setData;
与网络请求有关的使用request开头,例如:- (void)requestData;
点击事件使用click开头,例如:- (void)click_LoginBtn;

八、C中方法排序

生命周期放在最上面,其它方法按功能作用自己分好排序方式
建议如下分配:
1 初始化数据
2 配置界面
3 懒加载
-----数据有关的方法
4 网络请求
5 数据库操作
6 数据、业务逻辑
-----控件有关的方法
7 代理
8 显性控件触发
9 隐性控件(需要触发才成为显性控件,例如:弹窗)

九、注释

每个属性和方法都要注释

1.属性注释 (option + command + /)
例如:
/// 二维码扫描按钮
@property (nonatomic, strong) UIButton *btn_qrScan;
2.方法注释(.h和.m中的方法注释保持一样)
例如:
/**
 *  获取去除空格后的字符串
 *
 *  @param aString 传入字符串
 *  @return 去除空格后的
 */
+ (NSString *)trim:(NSString*)aString;
3.多个方法之间有联系的可以加mark分组注释
//MARK: - 时间转换
4.其它的都用(command + /)
//

你可能感兴趣的:(iOS代码规范)