通俗一點(diǎn)就是用到時(shí)再加載凛驮,而且只加載一次,其實(shí)就是所謂的重寫對(duì)象的get方法,當(dāng)系統(tǒng)或者開發(fā)者調(diào)用對(duì)象的get方法時(shí)条辟,再去加載對(duì)象黔夭。
實(shí)現(xiàn):
重寫get方法時(shí),先判斷對(duì)象當(dāng)前是否為空羽嫡,為空的話再去實(shí)例化對(duì)象
使用懶加載的好處:
- 不必將創(chuàng)建對(duì)象的代碼全部寫在viewDidLoad方法中本姥,代碼的可讀性更強(qiáng)
- 每個(gè)控件的getter方法中分別負(fù)責(zé)各自的實(shí)例化處理,代碼彼此之間的獨(dú)立性強(qiáng)杭棵,松耦合
- 對(duì)系統(tǒng)的內(nèi)存占用率會(huì)減小
@interface ViewController ()
@property (nonatomic,strong) NSArray *list;
@end
@implementation ViewController
-(NSArray *)list{
if (!_list) {
_list = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"list" ofType:@"plist"]];
}
return _list;
}
@end
在懶加載中需要注意點(diǎn)語法和使用
- list在類中聲明了一個(gè)屬性
- list是在重寫list的getter方法
- list不能用self.list,是因?yàn)?_list是個(gè)getter方法婚惫,若用getter訪問會(huì)造成死循環(huán)
- list可以用self.list訪問,這是個(gè)setter方法