lazy懒加载

概述:懒加载其实就是当对象需要用到的时候再去加载。

Objective-C中我们懒加载代码大多是重写一个属性的get方法,判断是否为空,为空就创建,否则直接返回。

- (NSObject *)obj {
    if (_obj == nil) {
        _obj = [[NSObject alloc] init];
    }
    return _obj;
}

而在Swift中,懒加载的实现方式更加简单,代码如下:

class ClassA {
    lazy var str: String = {
        let str = "Hello"
        print("只在首次访问输出")
        return str
    }()
}

注意:

  • 我们在使用 lazy 作为属性修饰符时,只能声明属性是变量;
  • 另外我们需要显式地指定属性类型,并使用一个可以对这个属性进行赋值的语句来在首次访问属性时运行;
  • 如果我们多次访问这个实例的 str 属性的话,可以看到只有一次输出。
原文地址:https://www.cnblogs.com/coderYDW/p/14412663.html