Swift 懒加载Lazy

2018-07-05  本文已影响8人  努力奔跑的小男孩

对于很多人非常熟悉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
    }()
    

使用这种方式的好处就是可以在闭包里面写入多句代码,实现自定制的目的。如果有错误请大家在评论区留言,谢谢!不喜勿喷。谢谢!

上一篇 下一篇

猜你喜欢

热点阅读