懶加載:
也就是延遲加載,以UI控件為例霍殴,通常用到這個控件的時候再進(jìn)行一系列的初始化操作,在移動端中来庭,內(nèi)存相形見絀,所以有時懶加載可以一定程度得減輕內(nèi)存占用
舉例:
@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 調(diào)用了loginButton的getter方法
而- (UIButton *)loginButton
方法就是重寫過后loginButton的getter方法,這時會加載控件
優(yōu)點:
①不需要再把控件的初始化操作寫在viewDidLoad中科盛,代碼看著更為簡潔
②模塊更為集中,高內(nèi)聚菜皂、低耦合。