通俗一点就是用到时再加载,而且只加载一次,其实就是所谓的重写对象的get方法,当系统或者开发者调用对象的get方法时,再去加载对象。
实现: 重写get方法时,先判断对象当前是否为空,为空的话再去实例化对象
使用懒加载的好处:
- 不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强
- 每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合
- 对系统的内存占用率会减小
@interface ViewController ()
@property (nonatomic,strong) NSArray *list;
@end
@implementation ViewController
-(NSArray *)list{
if (!_list) {
_list = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"list" ofType:@"plist"]];
}
return _list;
}
@end
在懒加载中需要注意点语法和使用
- list在类中声明了一个属性
- list是在重写list的getter方法
- list不能用self.list,是因为!_list是个getter方法,若用getter访问会造成死循环
- list可以用self.list访问,这是个setter方法