懒加载:
也就是延迟加载,以UI控件为例,通常用到这个控件的时候再进行一系列的初始化操作,在移动端中,内存相形见绌,所以有时懒加载可以一定程度得减轻内存占用
举例:
@interface lazyAdd() @property (nonatomic,strong) UIButton *loginButton; @end
@implementation lazyAdd
- (void) viewDidLoad{ [self.loginButton addTarget:self action:@selector(toLogin) forControlEvents:UIControlEventTouchUpInside]; };
- (UIButton *)loginButton{ if(!_loginButton) { _loginButton = [[UIButton alloc] initWithFrame:CGRectZero]; } return _loginButton; }
@end
分析:
懒加载的原理:重写了对象的 getter方法
上面代码中 viewDidLoad中 self.loginButton 调用了loginButton的getter方法
而- (UIButton *)loginButton
方法就是重写过后loginButton的getter方法,这时会加载控件
优点:
①不需要再把控件的初始化操作写在viewDidLoad中,代码看着更为简洁
②模块更为集中,高内聚、低耦合。