Swift 懒加载

Swift.png
懒加载
  • 防止重复创建
  • 节省资源,什么时候用什么时候加载
  • 格式: lazy var 变量名:类型 = { } ()
//懒加载

class Person {
    
    lazy var name:String = "CC";
    
    lazy var dog:Dog = {
        
        let d = Dog();
        
        d.name = "哈哈";
        
        return d;
        
    }()
    
    
}

class Dog {
    
    lazy var name:String = "cc的小狗";
    
    
}

p.dog.name;   //  "哈哈"
Dog().name;  //  "cc的小狗"


  • Swift中的懒加载只有在第一次访问的时候,会调用相应的函数,获取实例,下次即使为nil,也不会再次调用相应的函数

//懒加载

class Person {
    
    lazy var name:String = "CC";
    
  //dog是可选类型
    lazy var dog:Dog? = {
        
        let d = Dog();
        
        d.name = "哈哈";
        
        return d;
        
    }()
    
    
}

class Dog {
    
    lazy var name:String = "cc的小狗";
    
    
}


let p = Person();

p.dog?.name;
Dog().name;

//dig值为nil
p.dog = nil;

p.dog?.name;  //打印结果是:nil



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • init和initWithCoder 在UIView及其子类,重写了构造函数init 也必须实现initWithC...
    呦释原点阅读 6,314评论 0 3
  • 懒加载的2个好处:延迟加载属性(UI类型控件一般都会延迟加载)在后边的代码中,延迟加载的属性,不用再强制解包 懒加...
    Homer1ynn阅读 1,409评论 5 3
  • 懒加载就是延时加载的意思,比方说给某个类定义个对象属性,在用到这个属性的时候才初始化,而且重复使用只会初始化一次,...
    Super超人阅读 1,910评论 0 3
  • 在程序设计中,我们经常会使用 懒加载 ,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITab...
    猫爪阅读 21,260评论 10 56
  • 嗯,是《三国演义》,不是《三国志》。个人觉得如果不是学者,不一定要探究历史的每个细节,而是要从历史上发生的事情中得...
    快乐的提千万阅读 311评论 0 2