文档章节

懒加载

TaciturnKnightYQ
 TaciturnKnightYQ
发布于 2015/12/04 19:29
字数 289
阅读 162
收藏 0

懒加载

在 iOS 开发中,懒加载是无处不在的

  • 懒加载的格式如下:

lazy var person: Person = {    print("懒加载")    return Person()
}()
  • 懒加载本质上是一个闭包

  • 以上代码可以改写为以下格式

let personFunc = { () -> Person in
    print("懒加载")    return Person()
}
lazy var demoPerson: Person = self.personFunc()
  • 懒加载的简单写法

lazy var demoPerson: Person = Person()


import UIKit


class ViewController: UIViewController {


    // ``加载 - 本质上是一个闭包

    /**

        第一次访问属性时,会执行后面的闭包代码,将闭包的`结果`保存在 person 属性中

        下次再访问,不会再执行闭包!

    

        如果没有lazy,会在 initWithCoder 方法中被调用,当 二进制的 storyboard 被还原成视图控制器对象之后,就会被调用

    

        提示:在开始的时候,可以先尝试记忆语法!

    */

    lazy var person: Person = {

        print("懒加载")

        

        return Person()

    }()

    

    // -- 以下代码仅供参考,演示闭包 --

    // 1. 定义闭包

    let personFunc = { () -> (Person) in

        print("懒加载测试....")

        return Person()

    }

    

    // 2. 测试懒加载属性

    lazy var demoPerson: Person = self.personFunc()

    // ------------

    


    // 懒加载的简单写法

    lazy var demoPerson2: Person = Person()

    

    override func viewDidLoad() {

        super.viewDidLoad()


//        print(person)

    }


    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

        print(demoPerson2)

    }


}


© 著作权归作者所有

共有 人打赏支持
TaciturnKnightYQ
粉丝 4
博文 62
码字总数 26671
作品 0
高级程序员
Hibernate懒加载

面试题: get、load方法区别? get: 及时加载,只要调用get方法立刻向数据库查询 load:默认使用懒加载,当用到数据的时候才向数据库查询。 懒加载:(lazy) 概念:当用到数据的时候才向数据库...

爪哇程序猿
2015/10/22
165
0
Entity Framework Core 懒加载

众所周知在EF 6 及以前的版本中,是支持懒加载(Lazy Loading)的,可惜在EF Core 并不支持,必须使用方法来支持导航属性的数据加载。不过现在EF Core的开发团队打算恢复对这一功能的支持(目...

dotNET跨平台
01/25
0
0
hibernate读书笔记-懒加载《-》

懒加载是指程序推迟访问数据库,这样做可以保证有时候不必要的访问数据库,因为访问一次数据库是比较耗时的。 一、load方法的懒加载 先看如下代码段 [java] view plaincopyprint? <EMBED id=...

xiaml
2014/04/09
0
0
《Android-Fragment懒加载》

Fragment懒加载看见这个标题的时候很多人都会问为什么Fragment要懒加载,或者在哪种场景需要懒加载? 带着这两个疑问我们开始往下看。 1、为什么Fragment要懒加载 这个原因有点简单,就是想在...

吕檀溪
2016/08/22
98
0
关于Hibernate懒加载----Spring filter

处理方法:在web.xml中,配置(拦截器需要在sturts2之前) <!-- Spring 懒加载 拦截器 --><filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.o......

明天以后
2014/05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
10
0
vm GC 日志 配置及查看

-XX:+PrintGCDetails 打印 gc 日志 -XX:+PrintTenuringDistribution 监控晋升分布 -XX:+PrintGCTimeStamps 包含时间戳 -XX:+printGCDateStamps 包含时间 -Xloggc:<filename> 可以将数据保存为......

Canaan_
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部