iOS OC开发代码规范

 

1.变量、类名、函数名 使用驼峰命名法

2.尽量使用完整的单词命名,尽量不采用 缩写单词

3.类名使用大写字母打头,前缀统一加上HH 例如:HHHomePageController

4.类的成员变量使用 下划线打头, 例如_age

5.禁止在项目中的任何地方,包括文件名、目录名、逻辑目录名、项目名等地方使用空格或中文字符

6.为了不影响阅读,一个方法中代码不要超过100行。一个类中代码不要超过600行, 有超过的再回头重构的时候想办法分解

7.每个.h文件最开始处用简短文字说明一下该类的功能

8.类中第___个功能模块以 #pragma mark - 分隔,上空两行,下空一行

9.常用对象 命名采用后缀,如下 

UIView: View   例如:UICandidateView : viewCandidate;

UILabel: Lab 例如: UICopyLabel: labCopy;

UIButton: Btn 例如:  UISelectedButton:  btnSelected;

UIImage:  img      imgAvatar;

UIImageView:  imgViewAbc

UITextField:  textFiledName;

UITextView:  textViewEdit;

NSArray:  arrName;

NSMutableArray: mArrName;

NSDictionary: dictPosition;

NSMutableDictionary :MDictPosition;

NSString :strName;

NSMutableString :mStrName;

NSAttributedString :attributedStrName;

NSMutableAttributedString :mAttributedStrName;

 

10. 文档注释格式如下

    /**

    方法或变量名说明

     @param 参数1说明 

     @param 参数2说明

     ...

     @return 若方法有返回值,则对返回值进行说明

    */

12. 注意 常量和宏的声明

CGFloat cellHeight = 12.0f;

static CGFloat const cellHeight = 12.0f;

static NSString *const JumpNotificationName = @“JumpNotificationName”;

 

13.关于.h空行规定

13.1.文件说明与头文件包涵(#import)之间空1行

13.2.头文件包涵(#import)之间如果需要分类区别,各类别之间空1行

13.3.头文件包涵(#import)与@class之间空2行

13.4.@interface与@class之间空1行

13.5.头文件{}里面,空1行开始声明成员对象,如果需要分类别,各类别之间空1行

13.6.{}外空一行开始书写属性,如果需要分类,各类别之间空1行

13.7.空1行书写方法,如果各方法之间需要分类别,各类别之间空1行

13.8.方法完成之后,空1行@end

13.9.如果需要声明protocal,空2行接着写。通常protocal写在@end后,但是声明在@interface前,也可以另写1个文件

 

14.关于.m中空行的规定

14.1.文件说明与头文件包涵(#import)之间空1行

14.2.头文件包涵(#import)之间如果需要分类区别,各类别之间空1行

14.3.@implementation和@synthesize之间空1行,@synthesize不要使用逗号(,)如果需要分类区别,各类别之间空1行

14.4.@synthesize与 法之间空2 

14.5.各方法之间空2行

 

15.方法里面的空行 

15.1.方法名后空1行开始写 

15.2.变量声明后需要空1行,如果需要分类区别区分,各类别之间空1行

15.3.条件,循环,选择语句,整个语句结束,需要空1行

15.4.各功能块之间空1行

15.5.最后1个反括号之前不空

15.6.注释与代码之间不空

15.7.#pragma mark与方法之间空1行

 

16关于空格

16.1.h中协议<>前 有1个空格

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

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

16.4.方法+,-后,与()之间有1个空格

16.5.返回类型与*之间有1个空格, 方法参数中返回类型与*之间有1个空格

16.6.多参数的方法,每个参数后都有1个空格

 

17.关于bool值

17.1.不要 if(obj==nil){},  if(!obj){}

17.2.比较时把常量放前 可以避免错误

17.3.不要 if(aBool==YES){},直接 if(aBool){} 或if(!!aBool){}

 

18.变量属性名和其它

18.1.尽量在使用的时候才声明变量,尽量少声明全局变量

18.2.变量名不要只使1个字 ,尽量能表明变量的意思

18.3.@synthesize和@dynamic,应该放在类实现的最上面,每一个声明都单独一行

18.4.协议protocol需要加#pragma marks-来区分

18.5.obj = nil; delegate也应该在dealloc里面写  delegate = nil;

 

19其它

19.1@interface与@implementation与import之间空1行

19.2属性的声明和实现,尽量避免书写@synthesize,如果用到@synthesize,要紧接着@implementation书写,不要换行

19.3成员变量尽量写在@implementation内部,有必要对外暴露时,才写在@interface下

19.4临时变量的声明,尽量赋初始值, eg: NSInteger a = 0;

19.5声明多个临时变量,必须另起一行,禁止书写 int a = 3, b = 5;

19.6临时变量的声明语法写完后,必须各行开始书写逻辑代码,逻辑代码中可以穿插 临时变量的声明,同样必须隔行书写 

19.7遇到新的代码块,必须隔行书写。包括函数的实现,if, switch分支,while,do while,for循环等

19.8所有的代码块必须用{}, 即只有1行的if代码也必须用{}, 

 if (success) {
         return YES; 

 }

19.9所有的二次元运算符,必须以空格隔开,如 x += 12, 不能写成 x += 12;

19.10.所有的逗号后必须追加一个空格, 例如CGRectMake(12, 12, 43, 40);

19.11.尽量用NSInteger 取代int, 用NSUInteger 取代unsigned int

上一篇:IOS获取物理尺寸中7Plus中获取的是7的物理尺寸


下一篇:iOS开发--3D Touch的基本使用