iOS代码规范

2019-11-19  本文已影响0人  hanjun

注释

必需:类介绍/方法介绍/属性介绍

/// 刷新按钮
@property (nonatomic, strong) UIButton *refreshBtn;
// load network data
// 这是一个新加的功能 v5.20.0 by hj  2019-03-20 18:00

方法

- (instancetype)init
{
    self = [super init];
    if (self) {
        <#statements#>
    }
    return self;
}
- (void)doHomework:(NSString *)name
            period:(NSInteger)second
            score:(NSInteger)score;
//good
- (instancetype)initWithAge:(NSInteger)age name:(NSString *)name;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

//bad
- (instancetype)initWithAge:(NSInteger)age andName:(NSString *)name;
- (void)tableView:(UITableView *)tableView :(NSIndexPath *)indexPath;
#pragma mark - Initializatio
#pragma mark - Life cycle
#pragma mark - Actions
// view的⼀一些事件⽐比如按钮点击、⼿手势事件处理理、通知处理理
#pragma mark - Delegates // 实现遵循的代理理⽅方法
#pragma mark - Private method // 控制器器的⼀一些私有的辅助⽅方法
#pragma mark - Getter & Setter // 属性的Getter/Setter⽅方法

属性

变量名

条件表达式

//good
if (condition1() && 
    condition2() && 
    condition3() && 
    condition4()) {
  // Do something
}
//bad
if (condition1() && condition2() && condition3() && condition4()) { ... }
- (void)doHomework
{
    if (self.hungry) {
        return;
    }
    if (self.thirsty) {
        return;
    }
    if (self.tired) {
        return;
    }
}
// bad
if (self.hungry) self.eat() 

// good
if (self.hungry) {
    self.eat()
}
if ( currentCursor == 2 ) { ... }
switch (menuType) {  
  case menuTypeLeft: {
    // ...  
    break; 
   }
  case menuTypeRight: {
    // ...  
    break; 
  }
  case menuTypeTop: {
    // ...  
    break; 
  }
  case menuTypeBottom: {
    // ...  
    break; 
  }
}

宏定义

#define HOME_PAGE_DID_SCROLL @"com.xq.home.page.tableview.did.scroll"
#define KHomePageDidScroll @"com.xq.home.page.tableview.did.scroll"

图片资源命名

组件版本规范

采用 A.B.C 三位数字命名,比如:1.0.2,当有更新的情况下按照下面的依据

版本号 右说明对齐标题 示例
A.b.c 属于重大内容的更新 1.0.2 -> 2.0.0
a.B.c 属于小部分内容的更新 1.0.2 -> 1.1.1
a.b.C 属于补丁更新 1.0.2 -> 1.0.3

注意事项

!aValue
-aValue  //负号
~aValue  //位非
++iCount
*strSource

其他

Xcode 代码块的存放地址
~/Library/Developer/Xcode/UserData/CodeSnippets 
Xcode文件模版的存放地址
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/
上一篇下一篇

猜你喜欢

热点阅读