1.懒加载基本
懒加载——也称为延迟加载,就是说,定义一个变量,我们在程序启动的时候不示例化,等到需要的时候再加载(效率低,占用内存小)。
2.用法
通常用法,你有一个UIlabel类型的property,简单定义为firstlabel,但是你不在初始化方法里为其alloc/init。
注意:所谓懒加载,写的是其get方法。如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化。
3.代码示例
//声明一个变量
@property(nonatomic,strong)UILabel *firstlabel;
@implementation YYViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self change];
}
-(void)change {
//self.firstlabel先调用getter方法 最重要的一点是,一定要使用点语法,也就是咱们所说的getter方法。此外更需要注意在getter方法里切勿使用self.firstlabel,因为self.firstlabel会调用getter方法,造成死循环。
[self.firstlabel setText:@"我就是我"];
}
//重写getter方法
-(UILabel *)firstlabel {
//判断是否已经有了,若没有,则进行实例化 这是重点,必须先判断
if (!_firstlabel) {
_firstlabel=[[UILabel alloc]initWithFrame:CGRectMake(20, 10, 300, 30)];
[_firstlabel setTextAlignment:NSTextAlignmentCenter];
[self.view addSubview:_firstlabel];
}
return _firstlabel;
}
4.使用懒加载的好处:
(1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强
(2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合
(3)只有当真正需要资源时,再去加载,节省了内存资源。