懒加载的定义:
所谓的懒加载可以定义为:
延时加载,即当对象需要用到的时候再去加载。其实就是所谓的重写对象的get方法,
当系统或者开发者调用对象的get方法时,再去加载对象。
懒加载的优点:
1.不需将对象的实例化写到viewDidLoad,可以简化代码,增强代码的可读性
2.对象的实例化在getter方法中,各司其职,降低耦合性
3.对系统的内存占用率会减小,只有当真正需要资源时,再去加载,节省了内存资源
使用懒加载注意事项:
1.重写get方法时,先判断对象当前是否为空,为空的话再去实例化对象
2.需要注意在getter方法里切勿使用self.shopData,因为self.shopData会调用getter方法,造成死循环
什么时候使用懒加载:
1.为什么要使用懒加载:
(1)这是苹果公司提倡的做法,其实苹果公司做的IOS系统中很多地方都用到了懒加载的方式,比如控制器的View的创建。
(2)我们知道iOS设备的内存有限,如果在程序在启动后就一次性加载将来会用到的所有资源,那么就有可能会耗尽iOS设备的内存。这些资源例如大量数据,图片,音频等等,所以我们在使用懒加载的时候一定要注意先判断是否已经有了,如果没有那么再去进行实例化
2.什么时候使用:
不是所有getter都需要写成懒加载的。有些时候很确定那些实例变量需要在某个地方初始化,那就不需要重写getter
了。大量的重写getter会造成大量的版面浪费,而且增加很多输入量。举个例子,控制器的viewDidLoad后所有布局和
视图都需要初始化好,那么可以将这些控件都放到一个独立的方法里初始化和布局,并不需要单独写getter。
原文:http://www.cnblogs.com/evening015/p/5415043.html