Swift 懒加载

作者: 追逐_chase | 来源:发表于2017-11-27 15:46 被阅读0次
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



相关文章

网友评论

    本文标题:Swift 懒加载

    本文链接:https://www.haomeiwen.com/subject/wnkdbxtx.html