美文网首页
2020-04-09

2020-04-09

作者: 年少轻狂不言弃 | 来源:发表于2020-04-09 18:40 被阅读0次

平安健康 iOS 代码规范

1. pragma mark标注方式


#pragma mark - Life Cycle
#pragma mark - Override
#pragma mark - Public Method
#pragma mark - Private Method
#pragma mark - Request
#pragma mark - Event Response

#pragma mark - Delegate
#pragma mark UIScrollViewDelegate (系统)
#pragma mark Custom Delegate
#pragma mark PHEmptyTipViewDelegate(私有)
#pragma mark - Getter && Setter
#pragma mark - Builder

2. if/else


1). 换行格式

if (user.isHappy) {
    //Do something
} else {
    //Do something else
}

2). if: 条件比较复杂时 单独抽一个方法

if ([self judgeConditionFor]) {
         
}

- (BOOL)judgeConditionFor {
    return cond1 && cond2 || cond3;
}

3). if: 最多嵌套2层 不要超过三层

 if ([someOther boolValue]) {
       //Do something important 
     if ([someOther boolValue]) {
       //Do something important 
     }
  }

3. 方法声明尽量用泛型


@property (nonatomic, strong) NSArray <NSArray<PHDebugQuickEnterItem *> *> *dataSource;

4. 命名:驼峰式


UIButton *settingsButton;

5. 方法名换行风格


1)'-/+'和返回类型直接要有空格 e.g: - (NSInteger)

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    return self.dataSource.count;
}

6. 枚举不应该加前缀k,以PH开头命名


枚举: 前缀不带'k'

typedef NS_ENUM(NSInteger, PHClaimAppealType) {
    PHClaimAppealTypeChecking = 1, 
    PHClaimAppealTypeFinish 
};

不要这样写!!!

enum GlobalConstants { 
    kMaxPinSize = 5, 
    kMaxPinCount = 500,
};

7. 常量定义方式 note: 注意顺序


.m文件

static const CGFloat kTitleSubtitleMargin = 8.f;

8. 属性定义方式&顺序


@property (nonatomic, assign, getter=isRead, readwrite) Bool read;

9. 外部属性暴露


.h
@property (nonatomic, strong, readonly) UIButton *actionButton;
.m 
@property (nonatomic, strong, readwrite) UIButton *actionButton;

10.全局变量、属性初始化位置


1) 属性尽量用懒加载初始化

- (PHGetWalletUrlAPIManager *)getWalletUrlAPIManager
{
    if (!_getWalletUrlAPIManager) {
        _getWalletUrlAPIManager = [[PHGetWalletUrlAPIManager alloc] init];
        _getWalletUrlAPIManager.delegate = self;
    }
    return _getWalletUrlAPIManager;
}

2) 严禁在viewWillAppear()、viewDidAppear()初始化全局变量和属性!!!

- (void)viewDidAppear:(BOOL)animated
{
    self.popupArray = [NSMutableArray array];
}

11. 方法参数大于等于3 参数冒号对齐


- (void)openUpNativeRoute:(PHNativeRoute)nativeRoute
               parameters:(nullable NSDictionary *)parameters
                navigator:(UINavigationController *)navigator
                 animated:(BOOL)animated
                  prepare:(nullable PHOpenPrepare)prepare
               completion:(nullable PHOpenCompletion)completion

12. 方法调用是优先考虑点语法


self.name

13.switch语句


1) 大括号'{ }' 包裹整个case

 switch (condition) {
        case 1: { // ... // Multi-line example using braces
            break;
            
        }
        case 2: { // ... // Multi-line example using braces
            break;
            
        }
        case 3: { // ... // Multi-line example using braces
            break;
            
        }
        default: // ... break;
            
    }

2) 当在switch使用枚举类型时,default是不需要的。例如:

PHClaimAppealType appealType = PHClaimAppealTypeChecking;;
switch (menuType) {
    case PHClaimAppealTypeChecking:
        // ...
        break;
    case PHClaimAppealTypeFinish:
        // ...
        break;
}

14. 图片命名规范


home_icon40x40@2x.png
图片命名
模块_类别_功能_状态.png
tab_button_search_normal.png

15. 文件import 顺序


#import "PHInstruranceMeasureItemCell.h" -本类

#import "Mode1.h" -M
#import "Mode2.h" -M
#import "Mode3.h" -M

#import "PHView1.h" -V
#import "PHView2.h" -V
#import "PHView3.h" -V
#import "PHView3.h" -V

#import "PHViewController1.h" -C
#import "PHViewController2.h" -C
#import "PHViewController3.h" -C

#import "PHAppTheme.h"  - helper, manager
#import "PHScreemSize.h"

#import "UIView + size.h" - 分类

#import <UIKit/xxxx.h> - 系统库

#import <PHNativeRouter/PHNativeRouter.h>  - pod库
#import <AFNetworking/AFNetworking.h>  - 三方库

16. 第三方库接入功能、依赖库、权限说明


第三方库接入功能、依赖库、依赖权限需在三方库依赖规范中添加说明

相关文章

  • 2020-04-10

    2020-04-09 菜菜_d868 字数 349 · 阅读 1 2020-04-09 22:45 2020-04...

  • 2020年书单+剧单

    2020-04-09,《人生的智慧》,叔本华 2020-04-09,《绝对笑喷之弃业医生日志》,亚当·凯 2020...

  • 使用kotlin自定义dialog详解

    ``` /** * author:CQ * Date:2020-04-09 * Description:调拨出入库...

  • 成功路上并不拥挤,因为坚持的人不多NO.145

    2020-04-09 星期四 晴 成功路上并不拥挤,因为坚持的人不多NO.145 成功路上并不拥挤,因为坚持...

  • 晚间日记1

    今天是2020-04-09 起床:07:00 就寝:24:00 天气:超级无敌好天气,晚上还有星星 心情:无敌爆炸...

  • 《高效演讲》3

    Day24 2020-04-09 《陶峻:随时随地高效表达的三大策略》 【字数】 “书中自有黄金屋。”--阅读让我...

  • targetSdkVersion 升级到 28,并迁移到 And

    更新日志 2020-04-09 首次发布 前言 由于目前大部分应用市场要求新上架应用应基于 Android 8.0...

  • Git ! [rejected] master ->

    什么情况 今天(2020-04-09)维护一个iOS项目,增加完需求走完测试流程后准备在gitlab上做个版本,结...

  • hey~你还记得我吗?

    2020-04-09,那天我下定决心开始日更。 2020-05-19,即将坚持日更的第40天,我断更了。 那天,我...

  • 2020-04-09

    写往天堂的信 张永霖 互相关注 字数 806 · 阅读 9 2020-04-09 19:35 在天堂上的老爷爷老奶...

网友评论

      本文标题:2020-04-09

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