目錄
(1)Classes(項(xiàng)目功能類文件)刊橘。
(2)Commons(常用宏定義類等公共文件)暇矫。
(3)Utils(自定義功能類文件)主之。
(4)Plugins(常用第三方擴(kuò)展功用類文件)择吊。
(5)Resource(視頻\聲音等資源文件。項(xiàng)目圖標(biāo)\logo\啟動(dòng)頁等存放在 Assets.xcassets 中)槽奕。
命名規(guī)范
VC的命名 :BLxxxxxVC
Cell的命名 :BLxxxxxCell
View的命名 :BLxxxxView
彈出框View的命名:BLxxxxPopView
管理類 :BLxxxxMangers
UIText :blXxxxText
UIButton :blXxxxButton
UIlabe :blXxxxLabe
UIview :blXxxxView
以此類推......
Model的命名規(guī)則:
BLBaseModel(基類)几睛,不夠用再擴(kuò)展-->
BLListModel(列表),不夠用再擴(kuò)展-->
BLDictionaryModel(字典)史翘,不夠用再擴(kuò)展-->
BLxxxxModel(基類)
userModel
枚舉命名規(guī)則:
BLXxxxPlayerStateLoading
分類時(shí)枉长,以有意義的英文單詞結(jié)尾冀续。
如:NSString+Regular.h琼讽、NSString+Regular.m 等。
常量名
(1)明確類型和值時(shí)洪唐,使用靜態(tài)變量進(jìn)行定義钻蹬。
如:static NSString *const kDefaultPhone = @”13800138000”;
(2)需要計(jì)算或判斷才能確定值時(shí),使用宏定義凭需。
如:#define kMinValue(a, b) (a > b ? b : a)
圖片/圖標(biāo)名
導(dǎo)航條背景圖標(biāo) xxxNavigation@2x.png
頁簽圖標(biāo) xxxTab@2x.png
按鈕圖標(biāo) xxxBtn@2x.png
區(qū)分不同狀態(tài)的圖標(biāo)
點(diǎn)擊前l(fā)oginBtn_normal@2x.png
高亮?xí)rloginBtn_highlight@2x
選中時(shí)loginBtn_selected@2x问欠;
禁用時(shí)loginBtn_disabled@2x。
在需要添加注釋的代碼前一行粒蜈,使用快捷組合鍵 Cmd + Option + / 會(huì)自動(dòng)添加注釋標(biāo)識(shí)顺献。
方法名
(1)方法不帶參數(shù)時(shí)。
如:- (void)deleteClick;
(2)方法帶有參數(shù)時(shí)枯怖,必須完整且清楚的定義各個(gè)參數(shù)注整。
如:- (void)loginWithName:(NSString *)name password:(NSString *)password;
(3)方法帶有返回值時(shí)。
如:- (BOOL *)modifyUserName:(NSString *)name;
項(xiàng)目可維護(hù)的一些原則:
1度硝,盡可能少寫代碼
2肿轨,盡可能減少第三方依賴,除非有明確的需求
3蕊程,采用一致的代碼風(fēng)格
4椒袍,統(tǒng)一代碼布局
5,統(tǒng)一Model層
6藻茂,統(tǒng)一網(wǎng)絡(luò)請(qǐng)求方法
#pragma mark - Life Cycle
#pragma mark - 視圖
#pragma mark - 網(wǎng)絡(luò)
#pragma mark - 交互
#pragma mark - Lazy Load
//MARK: - Life Cycle
//MARK: - 視圖
//MARK: - 網(wǎng)絡(luò)
//MARK: - 交互
//MARK: -Lazy Load
不允許直接聲明和使用實(shí)例變量驹暑,應(yīng)當(dāng)使用屬性變量
錯(cuò)誤:
@interface object{
NSString *_name;
}
@end
正確:
@interface object
@property (nonatomic, strong) NSString *name;
@end
Delegate函數(shù)名
delegate方法四要素:
返回類型
自己
事件
反饋參數(shù)
- (void)manager:(XXManager *)manager didFailedWithErrorCode:(NSString)errorCode errorMessage:(NSString *)errorMessage;
- (void)managerTaskDidFinished:(XXManager *)manager;
delegate方法第一個(gè)參數(shù)永遠(yuǎn)都應(yīng)該是自己。
{}的使用規(guī)范
錯(cuò)誤:
- (void)foo {
...
}
正確:
- (void)foo
{
...
}
if-else中{}不換行辨赐,else中的{}不換行:
正確:
if (foo) {
...
} else {
...
}