iOS開發(fā)代碼規(guī)范

1、命名規(guī)范

1.1 統(tǒng)一要求
  • 含義清楚,盡量添加注釋, 使用全稱,不使用縮寫
1.2 類的命名
  • 大駝峰式命名:每個單詞的首字母都采用大寫字母
例如:
MyPageViewController      //ViewController: 使用ViewController做后綴
MyPageView                //View:使用View做后綴
MyPageTableViewCell       //UITableViewCell:使用TableViewCell做后綴
MyPageCollectionViewCell  //UICollectionViewCell 使用CollectionViewCell做后綴
MyPageDelegate            //Protocol: 使用Delegate或者DataSource作為后綴
1.3 私有變量
  • 小駝峰式命名:第一個單詞以小寫字母開始,后面的單詞的首字母全部大寫,不要使用拼音,也不要使用字母縮寫
例如:firstName、lastName
1.4 property變量
  • 小駝峰式命名,不要使用拼音,也不要使用字母縮寫
例如: //注釋
@property (nonatomic, copy) NSString *userName;
1.5 宏命名
  • 全部大寫,單詞間用 _ 分隔。[不帶參數(shù)]
例子: #define THIS_IS_AN_MACRO @"THIS_IS_AN_MACRO"
  • 以字母 k 開頭,后面遵循大駝峰命名。[不帶參數(shù)]
  例子:#define kWidth          self.frame.size.width
  • 小駝峰命名。[帶參數(shù)]
  #define getImageUrl(url) [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",kBaseUrl,url]]
1.6 Enum
  • Enum類型的命名與類的命名規(guī)則一致
  • Enum中枚舉內(nèi)容的命名需要以該Enum類型名稱開頭
例子:
  typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
      AFNetworkReachabilityStatusUnknown = -1,
      AFNetworkReachabilityStatusNotReachable = 0,
      AFNetworkReachabilityStatusReachableViaWWAN = 1,
      AFNetworkReachabilityStatusReachableViaWiFi = 2
  };
1.7 For-In & For 規(guī)范
例如:
for (NSInteger i = 0; i < 10; i++) {

    // code body
}

NSArray *numberArray = @[@1, @2, @3, @4, @5 , @6, @7, @8, @9];
for (id number in numberArray) {

    NSLog(@"%@", number);
}
1.8 Block規(guī)范
  • 在函數(shù)中使用到Block時, 與if-else或者for-in不太一樣, Block第一行與代碼塊必須得空行, 無論方法是否是系統(tǒng)自帶的
例如:
[className blockName:^(parameter) {

    // Code Body
}];
1.9 運算符規(guī)范
例如:
BOOL isOpen  = true;
BOOL isClose = !isOpen;
self.myString = @“mySring”
NSInteger userAge = @"Man" ? 18 : 19;  //雙目運算符
1.10 If-else規(guī)范
例如:
- (instancetype)initWithFrame:(CGRect)frame {

    if (self = [super initWithFrame:frame]) {
        // code body
    }
    return self;
}

if (age < 0) {

        // Code Body        
}

2、注釋

2.1 屬性注釋
例如:
//學生
@property (nonatomic, strong) Student *student;
2.2 方法聲明注釋
/** 
* @brief 登錄驗證
*
* @param personId 用戶名
* @param password 密碼
* @param complete 執(zhí)行完畢的block
*
* @return
*/
+ (void)loginWithPersonId:(NSString *)personId password:(NSString *)password complete:(void (^)(CheckLogon *result))complete;
2.3 .m中方法注釋
#pragma mark ------------------------------- Some Mothed

3、格式化代碼

3.1 指針 "*" 位置
  • 定義一個對象時,指針 "*" 靠近變量
例如: NSString *userName;
3.2 方法的聲明和定義
  • 在- 、+和返回值之間留一個空格,方法名和第一個參數(shù)之間不留空格
例如:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
3.3 方法和方法之間空一行,大括號跟在方法名后邊(個人習慣,蘋果官方給的是另起一行)
例如:
- (void)method1  {

}

- (void)method2 {

}
3.4 方法內(nèi)部大括號
例如:
- (void)method  {

     BOOL isFirst = YES;
      if(isFirst) {
          // do something here
     }
}

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