Swift—懒加载

*延迟存储属性*

* 延迟存储属性是指当第一次被调用的时候才会计算其初始值的属性。在属性声明前使用lazy来标示一个延迟存储属性

* 最常见的延迟存储属性:

> * 执行某个方法返回处理好的数据

> * 执行某个闭包返回处理好的数据

* 注意:

* 必须将延迟存储属性声明成变量(使用var关键字),因为属性的初始值可能在实例构造完成之后才会得到。而常量属性在构造过程完成之前必须要有初始值,因此无法声明成延迟属性。

* 如果一个被标记为lazy的属性在没有初始化时就同时被多个线程访问,则无法保证该属性只会被初始化一次

lazy var dataList: \[String] = {

''    print("我懒加载了")

''    return ["lee", "jack", "why"]

'' }()

'' let demoFunc = {

''    () -> [String]

''    in

''    print("我懒加载了")

''    return ["lee", "jack", "why"]

'' }

'' lazy var dataList2: [String] = self.demoFunc()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 懒加载的2个好处:延迟加载属性(UI类型控件一般都会延迟加载)在后边的代码中,延迟加载的属性,不用再强制解包 懒加...
    Homer1ynn阅读 1,388评论 5 3
  • init和initWithCoder 在UIView及其子类,重写了构造函数init 也必须实现initWithC...
    呦释原点阅读 6,296评论 0 3
  • 在程序设计中,我们经常会使用 懒加载 ,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITab...
    猫爪阅读 21,222评论 10 56
  • 懒加载就是延时加载的意思,比方说给某个类定义个对象属性,在用到这个属性的时候才初始化,而且重复使用只会初始化一次,...
    Super超人阅读 1,899评论 0 3
  • 年终聚餐会上,几位同事频频和老领导举杯敬酒,做为刚到公司不久的新人,我还是按捺不住和要好的同事商议起座和领导敬酒...
    生命狂奔阅读 353评论 0 0