懒加载:通俗来讲就是需要的时候才需要加载(创建)。怎么理解呢?比如一个数组或者一个控件,类init的时候根本不要对他们进行初始化or创建,我们需要使用的时候再初始化or创建,那么起到延迟作用了。也避免了类初始化的时候就要加载他们,减少内存不必要的开支
懒加载OC&Swift的区别
1 | @property (nonatomic, strong) NSArray *array |
1 | lazy var array: [String] = { |
lazy格式
格式:定义变量时前面使用lazy来修饰变量,后面通过等号赋值一个闭包,如果不知道闭包是什么,请看Swift-闭包
应用场景:
- 延迟对象的创建
- 当属性的值依赖其他未知类
注意点:
- 必须使用var声明变量,不能使用let(因为属性的值在实例构造完成之前可能无法得到,而常量属性在构造过程完成之前必须有初始值,因此无法声明成延迟属性)
- 闭包后面必须跟上()
1 | // 格式 |