Swift 懒加载
2017-11-27 本文已影响0人
追逐_chase
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