iOSOC開發程式碼規範
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 開發(一) 程式碼規範篇iOS
- iOS開發總結之程式碼規範iOS
- 前端開發編碼規範前端
- 開發中的程式碼規範實踐 PHPPHP
- PHP 規範 - Symfony 程式碼規範PHP
- 前端開發規範:命名規範、html規範、css規範、js規範前端HTMLCSSJS
- iOS開發——OC編碼規範iOS
- C#開發編碼規範C#
- Panorama系統程式開發規範
- Fw:Notes程式開發規範
- 開發規範
- Android 程式碼規範 - 命名規範Android
- Android程式碼規範:命名規範Android
- 程式碼規範之前端編寫碼規範前端
- Objective-C開發編碼規範Object
- 關於PHP開發編碼規範PHP
- MySQL資料庫規範 (設計規範+開發規範+操作規範)MySql資料庫
- 程式碼分支規範
- 程式碼規範整理
- JS程式碼規範JS
- 前端程式碼規範前端
- iOS程式碼規範iOS
- Less程式碼規範
- css程式碼規範CSS
- iOS 程式碼規範iOS
- 程式碼部署規範
- redis開發規範Redis
- 前端開發規範前端
- MySQL 開發規範MySql
- 規範開發工具
- INFORMATICA 開發規範ORM
- MySQL開發規範MySql
- Redis 開發規範Redis
- react 開發規範React
- oracle開發規範Oracle
- lisp 開發規範。Lisp
- php 開發規範PHP
- Git 開發規範Git