本文出自作者的教育訓練機構北京千鋒教育
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打頭;
- 3.1 變量、類名、函數名使用波浪式命名法,即碰到一個新的單詞則使用大
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 代碼的注釋應寫在對應代碼的上方或右邊,禁止将注釋寫在對應代碼的
下方;