本文出自作者的培训机构北京千锋教育
1. 目的
-
1.1 统一编程规范,让学员在学习过程中遇到讲师更替,不用重新适应一套
新的编程习惯;
-
1.2 使学员养成良好的代码习惯;
-
1.3 为了更加有效地开发和维护内部项目,更加有效地积累代码库。
-
原则只遵循苹果公司发布代码中主流的代码风格。
-
命名规范
-
3.1 变量、类名、函数名使用波浪式命名法,即碰到一个新的单词则使用大
写字母开头,尽量使用完整的单词命名,不采用缩写的单词命名;
-
3.2 基本不使用 C/C++语言所提倡的匈牙利命名法;
-
3.3 Cocos2D-‐X中的C++采用微软匈牙利命名法;
-
3.4 类名使用大写字母打头,最好加上项目名称缩写作为前缀,如:
QFWebView,其中 QF 是千锋的汉语拼音首字母;
-
3.5 类的成员变量,使用下划线打头,如:_age;
-
3.6 加方法和减方法的方法名一律以小写字母打头,如:createTableView;
-
3.7 临时变量和函数参数以小写字母打头;
-
3.8 const常量使用小写字母k打头;
-
4. 书写规范
-
4.1 属性的声明和实现,必须严格使用@property 和@synthesize 一一对应,
@synthesize 必须指定对应的成员变量,禁止使用默认生成的成员变量;
也就是禁止@synthesize age 这种写法,要这样写@synthesize age = _age;
-
4.2 成员变量一律写在@interface 内部,禁止在@implementation 后加大括
号,内部声明成员变量;禁止如下的操作:
@implementation RootViewController {int _age;
}
@end
-
4.3 尽量使用宏定义 RELEASE_SAFELY 和 RETAIN_SAFELY 取代 NSObject 内的减方法 release 和 retain,RELEASE_SAFELY 和 RETAIN_SAFELY 的实现分别为:
#define RELEASE_SAFELY(_obj) do { [_obj release]; _obj = nil; }while (0)
#define RETAIN_SAFELY(_receiver, _assigner) do { id __assigner =_assigner; if (__assigner != _receiver) { [_receiver release];_receiver = [__assigner retain]; } } while (0)
-
4.4 临时变量的声明,必须赋值初始化,如:
NSInteger x = 0;
-
4.5 声明多个临时变量,必须另起一行,禁止如下写法:
NSInteger x = 0, y = 0;
-
4.6 临时变量的声明语句写完后,必须隔行开始书写逻辑代码,逻辑代码中可以穿插临时变量的声明语句,同样必须隔行书写,如:
NSString *midLocalURL = [[g_pLCLog docDir]
stringByAppendingPathComponent:[NSString stringWithFormat:@"%@,%d",fileID, [g_pModel midPhotoSize]]];
if ([g_pFileMgr fileExistsAtPath:midLocalURL]) {CHECKB([g_pFileMgr removeItemAtPath:midLocalURL error:nil]);
}
UIImage *midImage = [image resizedImage:CGSizeMake([g_pModelmidPhotoSize], [g_pModel midPhotoSize])interpolationQuality:kCGInterpolationDefault];
NSData *midData = UIImageJPEGRepresentation(midImage,kImageCompressionQuality);
CHECKB([midData writeToFile:midLocalURL atomically:YES]);
-
4.7 遇到新的代码块,必须隔行书写,包括函数的实现、if、switch 分支语句、while、do...while、for 循环语句等,例如:
NSString *channelID = [g_pModel channelID];
if ([channelID length] == 0) {channelID = @"iTunes";
}
[label setText:LCString(@"TEST_VERSION")]; -
4.8 所有的二元运算符,以空格隔开,如 x += 12; 不应写成 x+=12;
-
4.9 所有的逗号后都要追加一个空格,如:CGRectMake(1, 3, 5, 7);
4.10指针的声明,*写在变量前,类名和*之间用空格隔开,禁止写成 C/C++提倡的写法:NSObject* obj = nil;应写成 NSObject *obj = nil;
4.11 尽量使用 NSInteger 取代 int、使用 NSUInteger 取代 unsigned int;4.12 代码的注释应写在对应代码的上方或右边,禁止将注释写在对应代码的
下方;