前言
好的代碼規(guī)范好處多多,例如便于團隊合作间校,看著舒服,易于閱讀艺配,維護方便等等钢猛。
頭文件
頭文件無論引入多少伙菜,都應(yīng)該進行分類并且排序去重(使用automator創(chuàng)建個去重排序腳本),一般分為vc命迈,view贩绕,工具類,請求類等等壶愤,根據(jù)個人喜好淑倾。
#import "BESettingVC.h"
#import "BEBindPhoneReciveCodeBeforeVC.h"
#import "BEBindPhoneThirdPartVC.h"
#import "BEBindPhoneVC.h"
#import "BELanguageVC.h"
#import "BESetLogInPasswordVC.h"
#import "BESetNotificationVC.h"
#import "FeedBackViewController.h"
#import "GroupInformationViewController.h"
#import "SetPayPasswordViewController.h"
#import "WebViewController.h"
#import "UnitPicker.h"
#import "VideoFileManager.h"
#import "DeviceManager.h"
宏、類型常量定義
一般緊跟著頭文件公你,盡量少使用宏
#import "DeviceManager.h"
static NSString *kIsFirstInPlayViewController = @"kIsFirstInPlayViewController";
static NSString *kPureModelGuideInPlayViewController = @"kPureModelGuideInPlayViewController";
協(xié)議
多個協(xié)議不要寫在一行
@interface BESettingVC ()
<
UITableViewDelegate,
UITableViewDataSource,
UnitPickerDelegete
>
實例變量
盡量不要使用實例變量踊淳,使用屬性
屬性
和頭文件一樣,分類排放陕靠,我喜歡分成UI和數(shù)據(jù)兩類迂尝,業(yè)務(wù)復(fù)雜再分幾類。
//UI
@property (weak, nonatomic) IBOutlet UITableView *tableView;
//Data
@property (nonatomic, strong) MineModel *mineModel;
@property (nonatomic,strong) RemindSetingMode * setting;
@property (nonatomic, strong) UserSetting *preferenceSetting;
@property (nonatomic, copy) NSString *cacheDes;
@property (nonatomic, assign) BOOL loadingPaymentcodeStatus;
方法
同一類的方法放在一起剪芥,用#pragma mark - <#arguments#>
進行注釋垄开。從上到下的順序我喜歡排列為:初始化方法->dealloc->懶加載->聲明周期-> UITableView的代理和協(xié)議->其它代理協(xié)議->action ->等等∷胺荆總之要分類明確
私有方法建議以p_
開頭溉躲,例如p_invalidateTimer
。
其它
- 強制使用xib和sb益兄,禁用frame布局锻梳。這里補充一句,設(shè)計的尺寸標(biāo)注一般是按2x來標(biāo)注的净捅,也就是屏幕物理尺寸的2倍疑枯,這個時候一定要保證按2x來標(biāo)注的尺寸是偶數(shù),這樣除2后是個整數(shù)蛔六。還有cell的尺寸一定要取整荆永,不然cell間會有黑邊废亭。
- 一定要進行codereview,保證整個團隊代碼規(guī)范一致具钥,保證代碼質(zhì)量豆村。技術(shù)上的債務(wù)償還太難,接手過別人的代碼都懂的……
上一篇:UIView局部透明/打洞骂删,點擊事件穿透
下一篇:去除編譯警告