美文网首页
iOS 常见的代码规范

iOS 常见的代码规范

作者: ios小蜗牛 | 来源:发表于2020-05-29 10:42 被阅读0次

参考资料:
https://github.com/raywenderlich/objective-c-style-guide

1.常量

使用类型常量,少用宏定义。

static NSString * const STMProjectName = @"GCDFetchFeed"

2.变量

变量名应该明确体现出功能,加上类型做后缀。
在使用之前,需要先对变量做初始化,并且初始化的地方离使用它的地方越近越好。
不要滥用全局变量,尽量少用它来传递值,通过参数传值可以减少功能模块间的耦合。

NSString *nameString = @"Tom";
nameLabel.text = nameString;

3.条件语句

条件语句的嵌套分支过多时,优先使用switch,运行速度更快。

推荐
if (!error) {
  return success;
}
不推荐:
if (!error) return success;

4.函数

函数体积不宜过大,最好控制在百行代码以内。
如果函数内部逻辑多,我们可以分解成多个小逻辑,并将每个小逻辑提取出来作为一个单独的函数。
每个函数处理最小单位的逻辑,然后一层一层往上组合。这样我们就可以通过函数名明确那段逻辑处理的目的,提高代码的可读性。
需要注意的是,拆分成多个逻辑简单的函数后,要对函数的入参进行验证,提高代码的健壮性。

// 最小单位的逻辑函数
- (void)saveName:(NSString *)nameStr{
    
    // 入参判断
    if (!nameStr) { return; }
    
    // 内容
}

5.类

类的头文件应该尽可能少地引入其他类的头文件。
可以通过 class 关键字来声明,然后在实现文件里引入需要的其他类的头文件。

#import <UIKit/UIKit.h>

@class Model;

@interface ViewController : UIViewController


@end

6.代码组织

用#pragma mark -按照此常规结构对功能分组和协议/委托实现中的方法进行分类。

#pragma mark - 搭建界面
#pragma mark - 网络请求
#pragma mark - 代理方法
#pragma mark - 封装方法
#pragma mark - 点击事件

7.间距

推荐
if(user.isHappy){
   //做某事 
} else {
   //做某事 
}
不推荐
if(user.isHappy)
{
   //做某事 
} else {
   //做某事 
}
推荐
[UIView animateWithDuration:1.0 animations:^{
  // something
} completion:^(BOOL finished) {
  // something
}];
不推荐
[UIView animateWithDuration:1.0
                 animations:^{
                     // something
                 }
                 completion:^(BOOL finished) {
                     // something
                 }];

8.枚举类型

使用enums时,建议使用新的固定基础类型规范,因为它具有更强的类型检查和代码完成功能。SDK现在包含一个宏,用于促进和鼓励使用固定的基础类型:NS_ENUM()

typedef  NS_ENUM(NSInteger,RWTLeftMenuTopItemType){
  RWTLeftMenuTopItemMain,
  RWTLeftMenuTopItemShows,
  RWTLeftMenuTopItemSchedule
};

9.布尔值

Objective-C使用YES和NO。
true,false应用于CoreFoundation,C或C ++代码。

推荐
if(someObject){}
if(![anotherObject boolValue ]){}
不推荐
if(someObject == nil){}
if([anotherObject boolValue ] == NO){}
if(isAwesome == YES){} //千万不要这样做。
if(isAwesome == true){} //永远不要这样做。

10.条件式编码

使用条件式编码时,少嵌套if语句,多使用返回语句。

推荐
- (void)someMethod {
  if (![someOther boolValue]) {
    return;
  }

  //Do something important
}
不推荐
- (void)someMethod {
  if ([someOther boolValue]) {
    //Do something important
  }
}

相关文章

网友评论

      本文标题:iOS 常见的代码规范

      本文链接:https://www.haomeiwen.com/subject/ojxxzhtx.html