1.懒加载基本

懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的是其getter方法。说的通俗一点,就是在开发中,当程序中需要利用的资源时。在程序启动的时候不加载资源,只有在运行当需要一些资源时,再去加载这些资源。

我们知道iOS设备的内存有限,如果在程序在启动后就一次性加载将来会用到的所有资源,那么就有可能会耗尽iOS设备的内存。这些资源例如大量数据,图片,音频等等,所以我们在使用懒加载的时候一定要注意先判断是否已经有了,如果没有那么再去进行实例化

2.使用懒加载的好处:

(1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强

(2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合

(3)只有当真正需要资源时,再去加载,节省了内存资源。

3.代码示例

例如应用的登陆界面通常是Lable和textField相结合我们自定义一个LTView类包含titleLable属性和textField属性

然后我们通过重写属性的getter方法可以完成lazy loading(懒加载)模式,使用lazy loading可以将代码按照模块封装,同时提高类的灵活度,也可以在一定时期内节省内存的使用,对于当前的LTView,使用lazy loading表示我提供了两个子视图,如果需要使用,秩序调用getter方法既可以显示该子视图,如果不需要,LTView就是一个空的视图

提醒:这是苹果公司提倡的做法。其实苹果公司做的IOS系统中很多地方都用到了懒加载的方式,比如控制器的View的创建。

iOS开发UI中懒加载的使用方法相关推荐

  1. iOS开发UI篇—懒加载

    iOS开发UI篇-懒加载 1.懒加载基本 懒加载--也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了, ...

  2. (0020)iOS 开发之-设计模式-懒加载解惑

    提醒:这是苹果公司提倡的做法.其实苹果公司做的IOS系统中很多地方都用到了懒加载的方式,比如控制器的View的创建. 懒加载:也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,其 ...

  3. iOS开发UI篇—懒载入

    iOS开发UI篇-懒载入 1.懒载入基本 懒载入--也称为延迟载入,即在须要的时候才载入(效率低,占用内存小).所谓懒载入,写的是其get方法. 注意:假设是懒载入的话则一定要注意先推断是否已经有了. ...

  4. fetchtype 动态控制_hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法

    对这种懒加载问题,最后的做法是利用Spring提供的一个针对Hibernate的一个支持类,其主要意思是在发起一个页面请求时打开Hibernate的Session,一直保持这个Session,使得Hi ...

  5. element ui 树形-懒加载-表格-多选 勾选问题

    element ui树形表格如下: 它的数据格式为:使用children字段来存放子级数据 tableData: [{id: 1,date: "2016-05-02",name: ...

  6. 在VC中动态加载ODBC的方法

    在VC中动态加载ODBC的方法     在使用VC.VB.Delphi等高级语言编写数据库应用程序时,往往需要用户自己在控制面板中配置ODBC数据源.对于一般用户而言,配置ODBC数据源可能是一件比较 ...

  7. SAP Commerce Cloud (电商云) UI 的懒加载功能

    最近工作中处理了 SAP Commerce Cloud (电商云) UI 的一个懒加载 (Lazy Load) 功能的问题,这里把自己学到的东西做个记录. UI 懒加载,有时又称惰性加载,延迟加载,是 ...

  8. ionic3开发系列——ionic3懒加载配置

    配置ionic3懒加载步骤: 1.给需要懒加载的页面配置module.ts: 例:配置about.module.ts: import { NgModule } from '@angular/core' ...

  9. Vue在路由中懒加载并创建组件,省去写页面的步骤

    需求 现在有一个公共组件,在多个端都需要使用,但传入组件的参数不同,每个端都要写个vue的页面或是component有点麻烦. <template><child blPath=&qu ...

最新文章

  1. 69:shell脚本介绍 | shell脚本结构 | 执行data命令用法 | shell脚本中变量
  2. shell 数组排序
  3. 全球及中国膀胱癌药物行业“十四五”专项规划及市场调研分析报告2021-2027年
  4. 查看CentOS的系统版本(亲测)
  5. Redis(七)Redis的噩梦:阻塞
  6. tf.nn.embedding_lookup
  7. webots自学笔记(七)通过定义顶点构件3D形状(IndexedFaceSet节点)
  8. Realsense无法启动彩色摄像头
  9. 计算n位二进制的所有情况
  10. 清理SharePoint 2010的SQL Server 2008 R2日志数据库的方法
  11. 工资管理系统【软件综合设计报告】
  12. C++公历农历转换2020-2080年/除夕修正
  13. 西电计算机学院专硕复试成绩,2018年西安电子科技大学硕士研究生招生统考考生拟录取名单公示...
  14. 国产免费虚拟化OVM与 OpenStack对比
  15. RedHat6.6安装thefuck工具,自动纠正错误命令
  16. HDU 5238 Calculator(中国剩余定理+线段树)
  17. Crosswalk 集成到 Android Studio
  18. 考研操作系统【1.1 操作系统的基本概念】
  19. 停用词库汇总、去重版
  20. VUE项目--卖座app

热门文章

  1. 逻辑电路 - 与非门Nand Gate
  2. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0
  3. const的用法,特别是用在函数前面与后面的区别!
  4. codevs 1531 山峰
  5. 在“DNS管理器”中手工增加DNS主机(A)或者别名(CNAME)记录时,出现被拒绝的错误...
  6. Python数据分析入门之pandas基础总结
  7. 常用的webservice接口
  8. Solaris 常用命令
  9. Dispatcher.Invoke方法
  10. 【重发】终于提交了项目第一个版本到git@osc了。兴奋ing