对于很多人非常熟悉OC中
的懒加载,并且已经达到炉火纯青。 但是在Swift
兴风作浪的年代,你好意思不掌握Swift
版的懒加载吗?
情景一:变量的懒加载
如果是对一个变量进行懒加载有两种方式
方式一:
private lazy var strArr1:[String] = ["one","two","three"]
方式二:
private lazy var strArr2:[String] = {
() -> [String] in
return ["one","two","three"]
}()
或者
private lazy var tem:[String] = {
return ["one","two","three"]
}()
注意:private不是强制要加的
方式一和方式二都可以实现相同的目的,推荐在给一个变量赋值需要懒加载的时候使用第一种方式,原因就是使用起来简单、容易理解。
情景二:实例的懒加载
如果是对一个实例进行懒加载推荐下面的这一种方式
lazy var tempBtn:UIButton = {
let btn = UIButton(type: UIButtonType.custom)
btn.setTitle("", for: UIControlState.normal)
// ... 更多的代码
return btn
}()
或者
lazy var tempBtn:UIButton = {
() -> UIButton in
let btn = UIButton(type: UIButtonType.custom)
btn.setTitle("", for: UIControlState.normal)
// ...更多的代码
return btn
}()
使用这种方式的好处就是可以在闭包里面写入多句代码,实现自定制的目的。如果有错误请大家在评论区留言,谢谢!不喜勿喷。谢谢!