- 用.map代替for循环遍历数组
- 运算符前后都要有空格(…除外)
- 每个函数完成一个功能
- 访问权限的使用:不用暴露给外面用private,其他尽量用internal,慎重使用public
- 对集合元素进行删除时,尽量一起删掉,不要循环
- 单例模式的使用,定义一个shared给外部,内部使用self访问
- private(set)可以设置某个属性在外部只能访问,不能修改。
- snapkit做布局的时候一般不折行,每条布局占一行
- 点击事件的处理函数一般放在所有 setup 放下下面,用 extension 单独分一组
- 通常不使用 lazy ,建议所有初始化方法放到 setupSubviews 中
- 可以相对 safeArea 布局,不用手动算状态栏和导航栏的高度
- 使用闭包回调时一定要用weak self,命名要体现触发的事件
命名
通知的命名:
let buttonApressedNotification = Notification.Name("MyViewController.buttonAPressed")
一般定义一个Name,命名不需要加name,字符串要带上类名
回调闭包的命名:
didPressButtonC = { ··· }
要体现触发回调的动作