懶加載
- 本質(zhì)是重寫getter方法;
- 用到時(shí)候再加載,而且只加載一次;
代碼實(shí)例
// 以懶加載一個(gè)UIImageView控件為例
- (UIImageView *)imageView
{
if (!_imageView) { // 這里是不可以寫成self.imageView的;(因?yàn)檫@里是getter方法)
_imageView = [[UIImageView alloc]init];// 這里可以寫成self.imageView(因?yàn)檫@里是setter方法)
}
return _imageView;// 這里是不可以寫成self.imageView的(因?yàn)檫@里是getter方法);
}
懶加載的好處
- 懶加載體現(xiàn)了OC的延遲加載思想,什么時(shí)候用什么時(shí)候加載;
cell中imageView屬性, tabbar中item都是通過懶加載的方式實(shí)現(xiàn)的;
- 懶加載可以打破對(duì)象彼此引用時(shí),先后聲明的限制;
- 不必將創(chuàng)建的代碼全部寫在- (void)viewDidLoad方法中,增加了代碼的可讀性;
- 每個(gè)屬性的getter方法中分別負(fù)責(zé)各自的實(shí)例化處理,代碼彼此之間的獨(dú)立性強(qiáng),耦合性低;
- 只有到真正需要資源的時(shí)候才回去加載,節(jié)省了內(nèi)存空間;
- 當(dāng)收到內(nèi)存警告是,需要didReceviewMemoryWarning方法中清理緩存,如果是懶加載的話,如果以后有的地方用到了該屬性,還會(huì)再次順利的加載出來;