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