1.如果给枚举类型赋值的时候可以直接点
.Left
2.在某些方法内部,某些属性必须要用!,但确实会有空值的情况时可以改为 ?? 空值
3.大部分控件都要使用懒加载
private lazy var 控件名: 控件类型
= {
}()
4.给一个类传值的时候重写setter方法有所不同
var变量名:类型 {
didSet {
}
}
5.貌似所有的宏定义和static修饰字符串都可以写成:
private let ……
6.cell或者layout这些类都可以直接定义到一个类里面了(非常好用!)
7.数据源和代理方法可以直接写在extension关键字修饰的方法里面(写外面好像也没影响)
8.在swift2.2之前,selector可以直接用String类型来表示方法名称
但由于这种写法是有一定的风险的,需要程序员自己规划好所有的方法名称,防止方法重名
在2.2之后selector方法有所改变
selector的写法变成#selector(类名.方法名) 有参数的话在方法名后面加上(_:) 这种写法的安全性有所提高,符合swift的设计思路
重点:
swift更强调代码的严谨。把很多容易犯错误都在编译阶段找出(?!的用法)
变量? 的意思是 当代码走到这一步时,变量可以为空
变量!的意思是 当代码走到这一步时,如果变量为空直接报错
这样子就解决了很多传值失败的问题,降低程序员调试的难度