命名规范

1. 常量

  • 规则
1. 格式为 Type *const kName//const修饰放到*号之前只表示指针指向地址不能修改(实现文件内)
2. 格式为 Type *const 类名+Name//(类外可见)
  • 建议
1. 尽量不使用宏定义(swfit不能使用宏定义)
2. static与extern修饰使用场景要区分

2. 变量

  • 规则
1. 成员变量m作为前缀,全局g作为前缀
  • 建议
1. 私有成员变量尽量写在.m的类扩展中

3. 属性

  • 规则
1. m作为前缀
  • 建议
1. 如果属性为私有,并且未使用懒加载,建议将属性改为变量(属性使用时会涉及到方法派送,影响性能)

4. 枚举

  • 规则
1. 大驼峰式命名,格式为MM+Name
2. 枚举内容以枚举类型名称开头 
typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
    AFNetworkReachabilityStatusUnknown = -1,
    AFNetworkReachabilityStatusNotReachable = 0,
    AFNetworkReachabilityStatusReachableViaWWAN = 1,
    AFNetworkReachabilityStatusReachableViaWiFi = 2
    };

5. 方法

  • 规则
1. 返回值是新建的话,方法名首字母用返回值类型(属性存取不算)
2. 返回值前面可以加修饰词
3. 没有返回值的方法用动词开始
4. get开头的用于那些由输出参数来保存返回值得函数
5. 返回时Boolean类型的话使用is或者has
  • 建议
1. 私有方法加前缀p_

6. 类

  • 规则
1. 大驼峰式命名MM+Name,能加后缀的加后缀

7. 协议

  • 规则
1. 类的实例必须为回调方法的参数之一
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
2. 以类的名字开头(回调方法存在两个以上参数的情况)以表明此方法是属于哪个类的, 如:(这一条可以和第一条合并)
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
3. 回调方法的参数只有类自己的情况,方法名要符合实际含义
-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView
4. 使用did和will通知Delegate已经发生的变化或将要发生的变化, 如:
 -(NSIndexPath*)tableView:(UITableView*)tableView willSelectRowAtIndexPath:(NSIndexPath*)indexPath;
  -(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath;

8. 关于大括号

  • 规则
1. 类方法必须另起一行写大括号,对于其他情况跟在代码之后空一格

9. 对method进行分组

  • 建议
#pragma mark----------------------------------life cycle
- (void)viewDidLoad {
    [super viewDidLoad];
    
}
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
}

#pragma mark----------------------------------UITableViewDelegate
- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 0;
}
-(UITableViewCell *)objectInConfigBtnAtIndex:(NSUInteger)index {
    return nil;
}

#pragma mark----------------------------------CustomDelegate
/*
 自己的代理
 */

#pragma mark----------------------------------event response
- (void)didTappedConfigBtn:(UIButton *)btn {
    
}

#pragma mark----------------------------------private method
/*
 私有方法
 */

#pragma mark----------------------------------getter and setter
- (UIButton *)configBtn {
    return nil;
}
- (UITableView *)tableView {
    return nil;
}

你可能感兴趣的:(命名规范)