ios 代码编码规范

一. ⻚面布局规范

1.1 ⻚面布局顺序

⻚面布局按规定顺序定义, 如果没有省略,但其他内容保持该顺序统一实现

1. #import (先标准库头文件,再非标准库头文件)

2.文件内部定义的宏

3.常量定义

4.变量(静态变量/静态常量)定义

5.属性定义

6.方法实现

1.1.2 标准库定义规范

系统标准库用尖括号<>, 非标准库用双引号"", .h文件中建议多用@class示例:

#import//标准库引用#import"WDUserModel"//非标准库引用

1.2 方法实现布局顺序

遵循重要信息写前面原则

代码以

#pragma mark -模块名区分

主体可如下区分模块,但总体顺序如下

#pragma mark - Initialize

#pragma mark - Life Circle

#pragma mark - Bind

#pragma mark - Action Method

#pragma mark - Delegate(or Datasource) Method

#pragma mark - Setup UI

#pragma mark - Lazy Loading

二. 命名规范

2.1 宏定义命名规范

宏命名以大写单词和下横线_组成

所有单词全部大写,

单词直接以下横线_分割正确示例:

#define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width

//屏幕宽度

错误示例:

#define screenWidth [[UIScreen mainScreen] bounds].size.width //错误:字母非全大写,单词不以_分割

2.2 静态变量、静态常量命名规范

静态变量、静态常量、全局变量 命名以k + 名组成, 声明的名称遵循驼峰命名法

正确示例:

static const NSString*kMyCellReuseID = @"kMyCellReuseID";错误示例:

static const NSString*myCellReuseID = @"myCellReuseID";//错误:不以字母k开头

static const NSString*MyCellReuseID = @"MyCellReuseID";//错误:不遵循驼峰命名法

2.3 成员变量命名规范

成员变量命名以 “下横线_”开头, 遵循驼峰命名法正确示例:

@interfaceWDHomeViewController()

{

        NSString*_title;

}

@end

错误示例:

@interfaceWDHomeViewController()

{

}

@end

NSString*title;

NSString*Type;

//错误:不以下横线_开头//错误:不遵循驼峰命名法

2.4 属性命名规范属性命名规范需遵循驼峰命名法

控件以对应控件结尾, 如定义UIView控件, 则以view结尾, 定义UILabel,则

以label结尾

正确示例:

@property(nonatomic,strong) WDHomeViewModel *viewModel;

@property(nonatomic,strong)UILabel*titleLabel;

错误示例:

@property(nonatomic,strong) WDHomeViewModel *ViewModel;//错

误:不遵循驼峰命名法

@property(nonatomic,strong) WDHomeViewModel *VIEW_MODEL;//错

误:错用宏定义规范

@property(nonatomic,strong) WDHomeViewModel *kViewModel;//错

误:错用静态常量(变量)规范

@property(nonatomic,strong)UILabel*title;//错误,未以统一的标识符结尾

@property(nonatomic,strong)UILabel*titleL;//错误,未以统一

的标识符结尾

2.5 方法命名规范

方法命名需遵循驼峰命名法取名简单, 让人望文生义严禁使用拼音命名

示例:

insertObject:atIndex:好的命名

insert:at:不清晰;插入什么?“at”表示什么?

removeObjectAtIndex:好的命名

remove:不清晰:要移除什么?

2.6 文件统一命名规范

自定义view视图, 以View结尾;

自定义Cell视图, 以

Cell结尾;

自定义ViewController, 以ViewController结尾;

自定义Model, 以Model结尾;

自定义ViewModel, 以

ViewModel结尾.

...

三. 编码格式规范3.1 指针类型编码规范:

所有指针类型的变量或者常量 指针标识*靠近变量或常量名正确

@property(nonatomic,strong,readonly, nullable)NSIndexPath*previouslyFocusedIndexPath;

错误

@property(nonatomic,strong)UILabel* titleLabel;//错误: *星

号靠UILabel

3.2 方法编码格式规范:

方法编码参考苹果命名规范, 方法名后紧跟’:’,然后紧跟形参, 返回类

型’(‘与’-‘之间有一个空格

-[空格](返回值类型)方法名:(参数类型1)参数1[空格]名2:(参数类型2[空格]*)参数2;

正确

- (NSInteger)collectionView:(UICollectionView *)collectionView

numberOfItemsInSection:(NSInteger)section;

错误

- (void)deployLoginInActionWithUserModel:

(WDUserModel*)userModel;//错误:未遵循指针编码规范, *)直接没有空格-(void)deployLoginInActionWithUserModel:(WDUserModel*)userModel;//错误:未遵循指针编码规范, -(直接没有空格

- (void)deployLoginInActionWithUserModel: (WDUserModel

*)userModel;//错误:冒号:和 左括号(直接有空格

- (void)deployLoginInActionWithUserModel:(WDUserModel *)

userModel;//错误:变量名和右括号)有空格

四. 换行规范4.1 方法名换行

*当方法有多个参数导致方法名过⻓时,使用换行使排版整⻬,冒号需对其示例:

- (id)initWithFrame:(NSRect)frameRect

                    mode:(ind)aMode

                    cellClass:(Class)factoryId

                    numberOfRows:(int)rowsHigh

                    numberOfColumns:(int)colsWide;

4.2 if-else 和 switch-case推荐if-else中 else if 换行, 方便注释调试

推荐

if(index ==0) {

        // code

}

else if{

    // codel

}

else{

// code

}

switch(cellType) {

caseWDCellTypeName1: {

// code

break;

}

caseWDCellTypeName1: {// code

break;

}

default;

break

}

五. 空行规范:

以下加重部分必须遵守

文件说明与头文件包涵(#import)空1行。

@interface与@class之间空一行

头文件{}里面,如果需要分类区别,各类别之间空1行;

方法完成后,空1行@end

如果需要声明protocal,空2行接着写。通常protocal写在@end后面,但是声明在

@interface前面,也可以另写一个文件。

@synthesize与方法之间空2行。

@implementation和@synthesize之间空一行,@synthesize不要使用逗号

(,)如果需要分类区别,各类别之间空1行

各方法之间空1或2行:

若空1行,则#pragma mark - 与上一个方法}空2行;

若空2行, 则#pragma mark - 与上一个方法}空3行

六. 空格规范:

1.一元操作符如“!”、“~”、“++”、“‒”、“*”、“&”(地址运算符)等前后不

加空格。“[]”、“.”、“->”这类操作符前后不加空格

!bValue

~iValue

++iCount

*strSource

&fSum

aiNumber[i] = 5;

tBox.dWidth

tBox->dWidth

2.多元运算符和它们的操作数之间需要一个空格

fValue= fOldValue;iNumber+= 2;

3.关键字之后要留空格

if、for、while等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。

4..h中成员声明时,类型与变量之间有至少1各空格。星号(*)靠近变量,不靠近类

型。(部分习惯,所有变量可以以*对⻬,中间留空)

NSString *titleName;intviewIndex;

5.方法名与形参不能留空格,返回类型与方法标识符有一个空格。

方法名后紧跟’:’,然后紧跟形参, 返回类型’(‘与’-‘之间有一个空格。

- (NSInteger)collectionView:(UICollectionView *)collectionView

numberOfItemsInSection:(NSInteger)section;

6.@property后有1各空格,()里面,逗号后有1个空格,括号外,先留1个空格,再声明

属性

@property(strong,nonatomic)UIWindow*window;

七. 注释规范:

7.1 注释类型:文档注释, 三横线 或者 三星号

///注释内容

/**

注释内容

*/

普通注释, 双斜线 或者 双星号

//注释内容

/*

注释内容

*/

7.2 注释规范:

.h中 @interface 必须写文档注释, 标明该类作用

///用户数据全局上下文

@interfaceWDHomeViewController:UIViewController@end

/**

用户数据全局上下文

*/

@interfaceWDHomeViewController:UIViewController

@end

.h中所有属性和方法必须写注释

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容