文档章节

懒加载

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.3

颜值是开胃菜,不要太在意,正餐才是重点。

colinux
今天
1
0
[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
3
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
3
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
1
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部