ios代碼規范

命名規范

小駝峰命名法(CamelCase):第一個單詞小寫字母開頭,其他單詞首字母大寫;

大駝峰命名法(PascalCase): ? 所有首字母大寫。

統一要求:含義清楚,盡量做到不需要看注釋也能了解其作用,使用全稱,不使用縮寫。

1、類的命名

* 大駝峰式命名:每個單詞的首字母都采用大寫字母, ? 例子:MFHomePageViewController

* 后綴要求

? ? ? ? ? ? ViewController: 使用ViewController做后綴

? ? ? ? ? ? 例子: HXHomeViewController

? ? ? ? ? ? View: 使用View做后綴

? ? ? ? ? ? 例子:HXAlertView

? ? ? ? ? ? UITableViewCell:使用Cell做后綴

? ? ? ? ? ?例子: HXNewsTableViewCell

? ? ? ? ? ?Protocol: 使用Delegate作為后綴

? ? ? ? ? ?例子: UITableViewDelegate

? ? ? ? ? ?UI控件依次類推

2、宏命名

* 全部大寫,單詞間用 _ 分隔。[不帶參數]

? ? ? ? ? 例子: #define THIS_IS_AN_MACRO @"THIS_IS_AN_MACRO"

* 以字母 k 開頭,后面遵循大駝峰命名。[不帶參數]

? ? ? ? ? 例子:#define kWidth self.frame.size.width

* 小駝峰命名。[帶參數]

? ? ? ? ? #define getImageUrl(url) [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",kBaseUrl,url]]

3、Enum

* Enum類型的命名與類的命名規則一致

* Enum中枚舉內容的命名需要以該Enum類型名稱開頭

例子:

typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {

AFNetworkReachabilityStatusUnknown = -1,

AFNetworkReachabilityStatusNotReachable = 0,

AFNetworkReachabilityStatusReachableViaWWAN = 1,

AFNetworkReachabilityStatusReachableViaWiFi = 2

};

4、類的成員變量

* 小駝峰式命名:第一個單詞以小寫字母開始,后面的單詞的首字母全部大寫

* 以 _ 開頭,第一個單詞首字母小寫

? ? ? ? ? 例子:NSString * _somePrivateVariable

* 私有變量放在 .m 文件中聲明

5、屬性

* 小駝峰式命名

例子:@property (nonatomic, copy) NSString *userName;

UILabel? *userNameLabel;

UIButton *userNameButton;

UIImageView *userNameImageView

UIView *userNameView;

6、方法

* 方法名和方法參數遵循相同的規則,使用小寫開頭的小駝峰法;

* 方法名和參數盡量讀起來像是一句話;

* 方法名不允許使用“get“前綴;

* -或+與返回類型間留一個空格,但參數列表之間不要留間隔;

* 如果參數過多,推薦每個參數各占一行;

例如:- (void)doSomethingWithString:(NSString *)theString (NSInteger *)theInteger { ? ... ? } ?;

書寫規范:

1.方法大括號和其他大括號(if/else/switch/while 等.)總是在同一行語句打開但在新行中關閉。

2. 在m文件中對當前類屬性進行引用的時候,使用self.property的方式,用以區分局部變量;對屬性進行賦值的時候使用“點”賦值,即A.property = value;

3. 使用import引用頭文件的工作全部放到 .m 文件中進行,.h文件用到的類型盡量用@class聲明,然后在.m里import;

4. 如果m文件中有較多的method,使用 #pragma mark 標記對方法進行分組,便于查看;

在函數分組和protocol/delegate實現中使用#pragma mark -來分類方法,要遵循以下一般結構:

#pragma mark - Lifecycle

- (instancetype)init {}

- (void)dealloc {}

- (void)viewDidLoad {}

- (void)viewWillAppear:(BOOL)animated {}

- (void)didReceiveMemoryWarning {}

#pragma mark - Custom Accessors

- (void)setCustomProperty:(id)value {}

- (id)customProperty {}

#pragma mark - IBActions

- (IBAction)submitData:(id)sender {}

#pragma mark - Public

- (void)publicMethod {}

#pragma mark - Private

- (void)privateMethod {}

#pragma mark - Protocol conformance

#pragma mark - UITextFieldDelegate

#pragma mark - UITableViewDataSource

#pragma mark - UITableViewDelegate

#pragma mark - NSCopying

- (id)copyWithZone:(NSZone *)zone {}

#pragma mark - NSObject

- (NSString *)description {}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、命名規范 1、統一要求含義清楚,盡量做到不需要注釋也能了解其作用,若做不到,就加注釋,使用全稱,不使用縮寫。 ...
    Untils閱讀 585評論 0 0
  • iOS編程規范0規范 0.1前言 為??高產品代碼質量,指導廣大軟件開發人員編寫出簡潔、可維護、可靠、可 測試、高效...
    iOS行者閱讀 4,502評論 21 35
  • 1. 關于命名 1>要求含義清楚,盡量做到不需要注釋也能了解其作用,若做不到,就加注釋 2>類的命名 1.大駝峰式...
    herui201211閱讀 206評論 0 0
  • 昨天去爺爺那裡吃了團圓飯,下午又去媽媽那裡坐了坐,晚上回到家,公公婆婆燒好了年夜飯等著我們。因為平日裡晚上就吃得很...
    如心1976閱讀 186評論 0 0
  • Linux中大部分時間都是在處理文本內容,而為了更加快速和自動化的處理文本,我們就需要正則表達式。正則表達式提供了...
    shenzhenboy閱讀 752評論 1 1