目录
(1)Classes(项目功能类文件)。
(2)Commons(常用宏定义类等公共文件)。
(3)Utils(自定义功能类文件)。
(4)Plugins(常用第三方扩展功用类文件)。
(5)Resource(视频\声音等资源文件。项目图标\logo\启动页等存放在 Assets.xcassets 中)。
命名规范
VC的命名 :BLxxxxxVC
Cell的命名 :BLxxxxxCell
View的命名 :BLxxxxView
弹出框View的命名:BLxxxxPopView
管理类 :BLxxxxMangers
UIText :blXxxxText
UIButton :blXxxxButton
UIlabe :blXxxxLabe
UIview :blXxxxView
以此类推......
Model的命名规则:
BLBaseModel(基类),不够用再扩展-->
BLListModel(列表),不够用再扩展-->
BLDictionaryModel(字典),不够用再扩展-->
BLxxxxModel(基类)
userModel
枚举命名规则:
BLXxxxPlayerStateLoading
分类时,以有意义的英文单词结尾。
如:NSString+Regular.h、NSString+Regular.m 等。
常量名
(1)明确类型和值时,使用静态变量进行定义。
如:static NSString *const kDefaultPhone = @”13800138000”;
(2)需要计算或判断才能确定值时,使用宏定义。
如:#define kMinValue(a, b) (a > b ? b : a)
图片/图标名
导航条背景图标 xxxNavigation@2x.png
页签图标 xxxTab@2x.png
按钮图标 xxxBtn@2x.png
区分不同状态的图标
点击前loginBtn_normal@2x.png
高亮时loginBtn_highlight@2x
选中时loginBtn_selected@2x;
禁用时loginBtn_disabled@2x。
在需要添加注释的代码前一行,使用快捷组合键 Cmd + Option + / 会自动添加注释标识。
方法名
(1)方法不带参数时。
如:- (void)deleteClick;
(2)方法带有参数时,必须完整且清楚的定义各个参数。
如:- (void)loginWithName:(NSString *)name password:(NSString *)password;
(3)方法带有返回值时。
如:- (BOOL *)modifyUserName:(NSString *)name;
项目可维护的一些原则:
1,尽可能少写代码
2,尽可能减少第三方依赖,除非有明确的需求
3,采用一致的代码风格
4,统一代码布局
5,统一Model层
6,统一网络请求方法
#pragma mark - Life Cycle
#pragma mark - 视图
#pragma mark - 网络
#pragma mark - 交互
#pragma mark - Lazy Load
//MARK: - Life Cycle
//MARK: - 视图
//MARK: - 网络
//MARK: - 交互
//MARK: -Lazy Load
不允许直接声明和使用实例变量,应当使用属性变量
错误:
@interface object{
NSString *_name;
}
@end
正确:
@interface object
@property (nonatomic, strong) NSString *name;
@end
Delegate函数名
delegate方法四要素:
返回类型
自己
事件
反馈参数
- (void)manager:(XXManager *)manager didFailedWithErrorCode:(NSString)errorCode errorMessage:(NSString *)errorMessage;
- (void)managerTaskDidFinished:(XXManager *)manager;
delegate方法第一个参数永远都应该是自己。
{}的使用规范
错误:
- (void)foo {
...
}
正确:
- (void)foo
{
...
}
if-else中{}不换行,else中的{}不换行:
正确:
if (foo) {
...
} else {
...
}