iOS懒加载

懒加载:

也就是延迟加载,以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中,代码看着更为简洁
②模块更为集中,高内聚、低耦合。

注意:在 重写getter方法时,不要调用self.loginButton,否则会造成死循环,自己调用自己的getter方法,一直调,一直调。。。。。。

你可能感兴趣的:(iOS懒加载)