一、命名规则
1、使用专业名词,如iOS不要写成IOS或者ios;(这个真的强迫症每次看到好多人写错心里真的有疙瘩,甚至好多大牛都写错,呜呜~~~~(>_<)~~~~)
2、尽量使用美式英语拼写确保和苹果公司的API一致;
eg:var tintColor = "red";NSString *userName = @"zhanglizzy";
2、使用驼峰式的描述性命名方式,为类,方法,变量等命名。类名的首字母应该大写,而方法和变量的首字母使用小写字符;
3、命名方式一定要能看出该名字是用来干嘛的,可以选择某些已被公认的缩写形式,eg:button可写成btn,viewController可写成VC;
4、UI控件命名格式:控件名+控件类型,eg“用户名文本框”:userNameLabel,“密码输入框”:passwordField;
5、具体参考苹果官方文档。
二、常量定义规范
1、字符串常量定义规范:
接口URL、通知名等,使用static let k… = “”命名;
Notification格式为: [Name of associatedclass] + [Did | will] + [UniquePartOfName] +Nofification(eg: UIKeyboardWillShowNotification);
2、公共常量定义在/ThankYou/Main/Common/Macro.swift文件中,用一个结构体存储对应的常量。
三、间隔
1、方法的花括号以及其他花括号(if / else / switch / while等等)总是跟语句在同一行开始,新起一行结束;(关于花括号的故事纠结了很久,现在坚持这么写是看苹果官方推出来的)如:
if user.isHappy {
//Do something
} else {
//Do something
}
2、方法之间应该总是用一个空行进行分割以提高视觉及结构上的清晰度。
四、使用标记分类代码块
每类方法前做一个Mark标记,以便于直接查看标记的方法名,而不用盲目的去查找,使整个目录清晰明了。如:
// MARK: - lifeCycle
override func viewDidLoad() {
super.viewDidLoad()
setup()
}
// MARK: - private Method
funcsetup() {
}
// MARK: - clickAction
func clickAction() {
sendMessageRequest() {
}
// MARK: - Request
func sendMessageRequest() {
}
五、注释规范
1、在每个类前添加类的用途描述:
*@author zhanglizzy, 16-04-12 11:08:29
*
*@brief用户数据单例
*
*@since 1.0
@interface UserSingleton : NSObject
2、方法注释使用VVDocumenter插件注释工具(可惜了现在Xcode8已经不能使用插件了,呜呜)
3、属性注释使用@/**<注释信息* /(可使用语句块/**<<#注释信息#>*/,这个很赞,在方法后注释,调用时可提示注释的内容)
六、适配规范
1、使用Masonry第三方框架进行界面适配(推荐使用)
2、可设置frame相对布局方式
七、控件的封装
1、封装的控件必须独立于框架,零耦合;
2、抛出的接口参数必须明确,简明扼要;
3、注释格式要规范,切带使用说明。
八、SVN使用规范
1、先更新,再提交;
2、涉及到大范围更新提交时,操作之前先备份本地代码;
3、如需替换文件,则必须先删掉被替换文件,提交,然后添加新文件再提交。
九、版本迭代要有清晰明确的版本纪录
1、明确纪录此次版本切割制作版本号;
2、此次版本所包含新增功能;
3、以及改动和修复的功能。
eg:
============== 1.1版本分界线=================
1、获取好友列表
2、BUG优化
3、发件箱消息推送
4、社交分享
5、留言接口调整
============== 1.1版本分界线==================