本文介绍: 我们使用的iOS设备其内存都有一定的限度,如果在程序启动时就将程序内的所有资源(数据,图片,视频)都加载完,那么有可能耗尽我的iOS设备的内存。懒加载也称延迟加载(比如控制器的view的创建),就是在开发中,当程序启动时不一次性加载所有的资源,而是在需要一些资源的时候程序才去加载这些资源(效率低,占用内存小),所谓的懒加载,其实就是对实例的getter方法的重写。…
一、什么是懒加载
二、懒加载的使用
注意:定义属性时要定义为strong
,strong会使修饰对象的引用计数加一,而weak不会,如果一个对象的引用计数为0的话系统就会自动将其销毁 如果你想让一个控件的生命周期随着你的控制器被销毁才去释放,那就使用strong;如果你仅仅是想让它在被移除视图之后就被销毁,那就使用weak
重写getter方法,当_lable不为空时,将其实例化。
注意:不能将括号中任意一个_lable换做self.label,所谓的点语法,就相当于调这个方法,在外部调用点语法时就形成无限循环.
三、 懒加载的优点
1.不需要将对象的实例化全部写到viewDidLoad中,可以简化代码,增强代码的可读性。
2.对系统的内存占用率会减少。
四、懒加载的缺点
1.使用泛滥会导致可读性变差,每使用一次懒加载,代码就会增加几行,那么当你程序使用大量的懒加载它的代码量就会比普通方法的代码量多,看起来反而更加的繁琐,可读性自然也就没有那么强了。
2.使用不当会导致死循环,导致crash,程序无法分清调用的是 getter 方法还是实例变量,会造成死循环。
3.代码量增加(每增加一个懒加载,代码会平均多出3-4行)。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。