Swift中的懒加载是比较简单的,最简单的做法就是我们可以直接这么写
lazy var person: Person = Person()
还有种写法是下面这种,后面的()表示的是调用这个闭包
lazy var person: Person = {
return Person()
}()
代码的执行过程是这样的,第一次访问属性的时候,会先去执行后面的闭包代码,将闭包的结果保存到这个person的属性中,下次我们再次去访问的时候,就不会再去执行闭包了。
如果我们上面的代码没有写lazy的话,是下面这种写法的话,代表会在initWithCoder方法中被调用,也就是说当二进制的storyboard被还原成视图控制器对象之后就会被调用
var person: Person = {
return Person()
}()
Swift中的getter方法和Setter方法
var _opti:String?
var opti: String? {
get
{
print("getter")
return _opti
}
set
{
print("setter")
_opti=newValue
}
}
如果我们不希望暴露方法或者属性我们可以在前面加上private进行修饰