Swift3.0语法2
(一)可选项: (二)懒加载: 在 OC 开发中,懒加载一般自定义控件。在 S wift中,懒加载还是需要用的,可以保证控件延迟创建,还能避免处理控件解包。如果直接定义控件v ar label = UILabel ,根据代码从上到下,会让控件在 V iewDidLad之前就提前创建了。所以需要懒加载。 OC 中懒加载就是 G et方法, S wift直接lazy var 。当然也可以private lazy var来限定作用域。 ( 1 )简单的懒加载: ( 2 )完整的懒加载:()就是函数执行,就是一个特殊的闭包,所以懒加载本质是一个闭包。一般不这么写。 ( 3 ) OC 和 S wift 区别 *OC : OC 是等于 nil 时候就懒加载 当 label 设 nil 的时候就在此调用。在ios 6 中,didReceiveMemoryWarning是不清理视图的。 此时释放的时候就会报错。因为定义的时候没有?,就是一定有值得。 那么如果定义时候加? 一旦label = nil ,也不会在执行懒加载了!因为懒加载根本没写如果是空就创建。 懒加载只会在第一次调用的时候执行闭包。 S wift 中一定注意不要主动清理视图或控件,因为懒加载不会创建了(例如内存警告别干掉控件,干掉了在也用不成了,因为懒加载就一次) (三)计算型属性