汇图-iOS开发规范

2019-01-02  本文已影响0人  sunpermeer

iOS开发规范

目录

1.格式与换行

1.1使用Xcode默认使用四个空格来缩进

1.2方法长度较长时可以考虑提取其中一部分。

1.3-方法和+方法和返回值前面的左括号间隔一个空格

    }

1.4条件语句采用苹果推荐的代码缩进方式。

BOOL isOk = YES;
if (isOk) {
    //...
}else{
    //...   
}

2.命名

2.1命名统一使用驼峰命名法;只采纳有广为人知含义的缩写。自造的缩写不被认可。总体的命名原则是清晰一直,避免歧义。

2.2,确保整个项目中的自定义类名称是统一的,同时确保类名需要大写字母开头。

2.3 类名命名需要结合功能或者模块。

2.4 方法命名小写字母开头,文件夹首字母大写开头。不要使用下划线开头作为方法的前缀。

2.5 定义类的变量,不需要暴露的变量均放在实现文件里定义,同时视图类变量,在类拓展下定义成属性。数据类型的变量定义在@implementation下的大括号内。

3.OC编码规范

3.1使用#pragma mark 来分类方法,如:

#pragma mark - UITableViewDataSource

#pragma mark – Private Methods

3.2重载系统方法的时候,如无特殊情况均需先调用super的方法。

3.3 属性必须指定其类型,如(nonatomic,strong)

3.4 使用#import引入oc/oc++文件,使用#include引入c/c++文件

3.5尽量减少公开的api接口的数量。

3.6枚举的定义使用如下方式

typedef NS_ENUM(NSInteger,BgViewType) {
    BGVIEWTYPE_DEFAULT = 1,
    BGVIEWTYPE_TIPREMOVE, //点击移除
};

4. 注释要求

4.1 新版本Xcode自带有添加注释的功能

4.2 在新建一个类的时候需要在头文件中添加注释来说明其作用。

4.3 在穿件接口类的时候,同样需要在头文件添加注释来说明该类的用处。

4.4 一些过于简单的注释尽量不要添加。


5. 其他

5.1 ifelse语句

if(case) {
  return success;
}
if (case)
  return success;
//或者
if (case) retrun success;

5.2 布尔值

if (someObject) {
    //...
}

if (![object boolValue]) {
    //...
}

5.3 三元操作符

NSInteger value = 5;
result = (value != 0) ? x : y;

BOOL isHorizontal = YES;
result = isHorizontal ? x : y;
result = a > b ? x = c > d ? c : d : y;

5.4 Init方法

@interface Animate
+ (instancetype)animateWithName:(AnimateName)name;
@end

5.6 CGRect函数

CGRect frame = self.view.frame;

CGFloat x = CGRectGetMinX(frame);
CGFloat y = CGRectGetMinY(frame);
CGFloat width = CGRectGetWidth(frame);
CGFloat height = CGRectGetHeight(frame);

5.7 黄金路径

- (void)func {
   if (!case) {
      retrun;
  }
    //Do something
}

5.8 单例模式

+ (instancetype)sharedInstance {
  static id sharedInstance = nil;

  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    sharedInstance = [[self alloc] init];
  });

  return sharedInstance;
}

5.9 布局中的空格

@interface AClass:NSObject

@property (noatomic, strong) UIView *aView

- (void)aMethod;

@end

@implementation AClass

- (void)setAView:(UIView *)aview {

}

- (void)aMethod {

}
@end

5.10 Getters 和 Setters 放到底部

5.11 Delegate要使用弱引用

5.12 属性的线程安全

5.12 点分语法的使用

5.13 nil检查

//正确方式
if (!object) {
  //...
}
//错误方式
if (nil == object) {
  //...
}
上一篇下一篇

猜你喜欢

热点阅读