iOS OC 学习手册

Swift lazy 懒加载

2021-06-18  本文已影响0人  我为双鱼狂

应用场景

在使用变量过程中:

  1. 当在使用该变量时再初始化加载
  2. 在设置懒加载的时候,可以通过 self 设置类的属性、方法或者函数等。比如在类的普通初始化中,当类的初始化完成前,是无法使用它的属性、方法或者函数

核心逻辑/代码

可以被称之为懒加载的几个情况:

lazy 修饰的实例属性不是线程安全

采用 lazy var 形式的懒加载,无法保证线程安全。一旦某个线程对某一实例属性的懒加载过程未结束,而另一个线程同时又操作了该实例属性,那么会导致又一次加载属性,此时该属性便被初始化多次,已不再具有“懒”的特点了。— 《The Swift Programming Language》

示例代码


// 懒加载1:全局变量
var down1 = "ddd"

struct AA {
    // 懒加载2:类属性
    static let aa
    
    // 懒加载3:实例属性
    lazy var bb
}
上一篇 下一篇

猜你喜欢

热点阅读