iOS代碼規(guī)范
Apple官方文檔:文檔
變量
- 1.類烙荷,協(xié)議使用大駝峰
HomeViewController.h
<TipsViewDelegate>
- 2.對(duì)象及局部變量使用小駝峰
NSString *personName = @"張三";
- 3.變量绿贞,屬性的名稱應(yīng)包含功能與類型
UIButton *nameButton;
@property (nonatomic, strong) UIButton *nameButton;
宏
- 宏使用大寫字母油昂,用下劃線‘_’分割單詞殴玛。
#define HOME_PAGE @"";
- 2.宏定義中如果包含表達(dá)式或變量菜循,表達(dá)式和變量應(yīng)用小括號(hào)括起來翘地。
#define MY_MIN(A, B) ((A)>(B)?(B):(A))
常量
- 1.單文件常量
static NSString * const kMsg = @”MSG”;
- 2.多個(gè)文件共享常量(通知等)
.h
extern NSString * const badgeNameNotification;
.m
static NSString * const badgeNameNotification = @"badgeNameNotification";
聲明cell的重用字符
k + cell的名稱 +identifier
比如: QYHomeItemTableViewCell的標(biāo)識(shí)符
kQYHomeItemTableViewCellIdentifier
枚舉
枚舉規(guī)則:枚舉名同類名規(guī)則,加項(xiàng)目前綴债朵,大駝峰命名子眶;
枚舉值去掉前綴,大駝峰命名
typedef NS_ENUM(NSInteger, QYHomeControllerSelectType) {
HomeControllerSelectTypeOne,
HomeControllerSelectTypeTwo,
};
方法
- 1.普通方法的命名
方法使用小駝峰法命名序芦。
能反應(yīng)出這個(gè)方法是什么含義臭杰。
執(zhí)行性的方法應(yīng)該以動(dòng)詞開頭。
返回性的方法應(yīng)該以返回的內(nèi)容開頭谚中。
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)object;
- (NSString *)stringWithString:(NSString *)string;
- 2.Delegate方法的命名
類的實(shí)例應(yīng)為回調(diào)方法的參數(shù)之一;
回調(diào)方法的參數(shù)只有類本身的情況渴杆,方法名要符合實(shí)際含義;
以類的名字開頭(如果回調(diào)方法有兩個(gè)以上參數(shù)的情況);
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section;
-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView;
在類.m中根據(jù)不同功能代碼來進(jìn)行分類:
#pragma mark - Initialization
#pragma mark - LifeCycle
#pragma mark - override
#pragma mark - Actions
#pragma mark - Delegates
#pragma mark - Public
#pragma mark - Private
#pragma mark - Getter & Setter
CGRect函數(shù)
推薦: 可讀性比較高
CGRect frame = self.view.frame;
CGFloat x = CGRectGetMinX(frame);
CGFloat y = CGRectGetMinY(frame);
CGFloat width = CGRectGetWidth(frame);
CGFloat height = CGRectGetHeight(frame);
不推薦:
CGRect frame = self.view.frame;
CGFloat x = frame.origin.x;
CGFloat y = frame.origin.y;
CGFloat width = frame.size.width;
CGFloat height = frame.size.height;
注釋
方法注釋:方法外部用option + command + /,方法內(nèi)部用//注釋。
/**
改變?cè)嘉谋?
@param originalString 原始文本
*/
- (NSString *)changeStringWithOriginalString:(NSString *)originalString {
//輸入的原始文本
}
屬性宪塔,模型注釋
///設(shè)備代碼串
@property (nonatomic, copy) NSString *deviceCodeString;
持續(xù)更新磁奖。