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
#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
}
}