美文网首页
swift----懒加载

swift----懒加载

作者: Bearger | 来源:发表于2017-06-19 19:43 被阅读17次

以下三种格式,都不会报错,可是,在编写代码时会有一些问题

1

    lazy var headerImageView:UIImageView = {
        let headerImageView:UIImageView = UIImageView(frame:CGRect.init(x: 0, y: 0, width: self.view.bounds.width, height: 125))
        headerImageView.image = UIImage.init(named: "header-contact")
        return headerImageView
    }()

2

    lazy var headerImageView:UIImageView = {
        let headerImageView = UIImageView(frame:CGRect.init(x: 0, y: 0, width: self.view.bounds.width, height: 125))
        headerImageView.image = UIImage.init(named: "header-contact")
        return headerImageView
    }()

3

    lazy var headerImageView:UIImageView = {
        let headerImageView = UIImageView(frame:CGRect.zero)
        headerImageView.image = UIImage.init(named: "header-contact")
        return headerImageView
    }()

12的差别在于,1使用UIImageView创建了一个对象,并在前面声明了对象类型。结果就是1在输入闭包的第二行代码时有代码提示,而2没有。1中通过类型推断可以得出headerImageView是一个UIImageView对象,而2中确是一个<<error, type>>
原因可以在3中找到答案:使用了self


在懒加载中的self似乎很有问题。

  1. 如果闭包中没有出现过self那么在断点调试的时候也不会得到self对象的内容;可如果出现过,那么在断点调试就可以得到内容;
  2. lazy闭包中的self没有代码提示(起码我是这样的);可是硬把代码刚出来后,确也跑得过;代码跳转什么的完全不是问题;
  3. 就是上面提到的

那么问题来了~!
Why~~~~ 😕

相关文章

  • swift----懒加载

    以下三种格式,都不会报错,可是,在编写代码时会有一些问题 1 2 3 1和2的差别在于,1使用UIImageVie...

  • iOS开发,懒加载

    什么是懒加载? 懒加载--比较懒的加载方式,需要的时候才加载,也称为延时加载。 所谓懒加载既是重写get方法,一定...

  • iOS开发UI篇-懒加载、重写setter方法赋值

    一、懒加载 1.懒加载定义 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的...

  • Fragment结合ViewPager之懒加载

    什么是懒加载?为什么要用懒加载?### 1、什么是懒加载 懒加载就是当ViewPager和Fragment结合在一...

  • iOS懒加载注意事项

    懒加载 1.懒加载 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其ge...

  • web优化之懒加载和预加载

    懒加载和预加载是常用的web优化的手段。所以我们首先应该明白什么是懒加载和预加载。懒加载:懒加载也加延迟加载,延迟...

  • fragment 懒加载

    fragment 的懒加载 懒加载 什么是懒加载:只有在 fragment 显示在界面的时候,才进行数据的加载 懒...

  • 懒加载和预加载

    懒加载和预加载 1. 懒加载 1. 什么是懒加载? 懒加载也就是延迟加载 当访问一个页面的时候,先把img元素或是...

  • Android 懒加载优化

    目录介绍 1.什么是懒加载1.1 什么是预加载1.2 懒加载介绍1.3 懒加载概括 2.实际应用中有哪些懒加载案例...

  • Swift语法点

    1 懒加载 懒加载与OC中的懒加载的区别:懒加载的类一旦 设置为nil 后, 懒加载就不会再次执行,与OC中不同,...

网友评论

      本文标题:swift----懒加载

      本文链接:https://www.haomeiwen.com/subject/lurnqxtx.html