iOS懒加载

摘要:
所谓的懒惰加载编写它的getter方法。我们知道iOS设备的内存有限。如果在程序启动后加载一次未来将使用的所有资源,iOS设备的内存可能会耗尽。事实上,苹果的IOS系统在许多地方都使用了延迟加载,比如创建控制器视图。

1.懒加载基本

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

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

2.使用懒加载的好处:

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

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

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

3.代码示例

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

iOS懒加载第1张

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

iOS懒加载第2张

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

iOS懒加载第3张

iOS懒加载第4张

免责声明:文章转载自《iOS懒加载》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇点击劫持(ClickJacking)mqtt(MQTT)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何学习ios(摘自知乎https://www.zhihu.com/question/20016551)

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:Wang Hailong链接:https://www.zhihu.com/question/20016551/answer/13680483来源:知乎 关于iOS开发的学习 打个比方就像把汽车分解 最底层的原料有塑料 钢铁 再用这些底层的东西造出来发动机 座椅 最后再加上写螺丝 胶...

ie8浏览器 图片本身问题导致 无法显示图片--- 诡异现象的排查分享

引子:   前段时间 做新版2.0 首页 的时候, 总感觉 新版首页 线上 精彩回顾下的 2张图片颜色怪怪的,当时以为是图片压缩太厉害导致的,由于实在太忙就没太在意!以下 是来自线上 截图:  红色方框 我认为  那2张 怪怪的 图片,大家感受下颜色是否不一样!   问题描述:        今天,测试同学找到我,说新版首页 精彩回顾下方 2张图片 在 i...

ios framework通用库的制作

这篇文章是在史上最完整的iOS DIY framework 详细教程(一)的基础上加以修改 1、新建一个静态库工程: 2:取自己喜欢的名字: 3、删除向导所生成工程中的 Target: 3、删除TestFrameWork对应的工程文件夹: 5:删除bulid 关连项 选择左下角Manager Scheme 选中 Scheme,点击左下角的减号删...

前端框架Vue自学之Vue router(六)

终极目标:掌握和使用Vue(全家桶:Core+Vue-router+Vuex) 本博客目的:记录Vue学习的进度和心得(Vue router) 内容:学习和使用Vue router。 正文: Vue router 一、认识路由 1、路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动。 2、路由器提供了两种机制:路由和转送。路由是决定...

iOS定位元素

最近在做IOS自动化测试,IOS的Appium环境都配置OK,执行起来真的慢,慢到怀疑人生,那么今天就来总结一下IOS定位方式和各个定位方式的速度排序。 据我观察,按查找元素的顺序速度,从快到慢的顺序如下: ios_predicate >> accessibility_id >> class_name >>xpath...

IOS越狱开发之开机启动APP

越狱环境搭建移步这里:http://www.cnblogs.com/ligun123/archive/2012/11/14/2770350.html 目前就我知道的开机启动有两种方式(仅限于越狱机器): 1、IOS设备开机后会自动加载LaunchDemos目录下面的Plist,这些Plist里面记录了相关的app信息,这些app都会在IOS开机后自动加载。...