Swift 懒加载Lazy

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容