懶加載

項目中有時候有些數(shù)據(jù),特別是數(shù)據(jù)比較多的時候,這時候可以不要寫在viewdidload中

可以用懶加載加載數(shù)據(jù),懶加載是在用到的時候加載,并且只加載一次。這樣就不需要在進入界面的時候不加載很多內(nèi)容在內(nèi)存中,加載比較快,省內(nèi)存。也就是想用的時候才去創(chuàng)建,不用的時候不創(chuàng)建。

本質(zhì)就是重寫get方法。

-(NSArray*)shops

{

if(_shops==nil) {

//加載plist數(shù)據(jù)

NSString*filePath = [[NSBundle mainBundle]pathForResource:@"shops"ofType:@"plist"];

self.shops= [NSArray arrayWithContentsOfFile:filePath];

}

return_shops;

}

_xxx ?跟self.xxx 有不少,一個很重要的是self.xxx會調(diào)用set方法_xxx只是訪問屬性變量,不會去調(diào)用set方法。

所以注意這里!!!! ?這里_shops 不能換成self.shops 否則出現(xiàn)死循環(huán),因為這里self.shops

的話就是又去調(diào)用get方法 造成死循環(huán),懶加載好用,但是一定要注意別寫錯了,小細節(jié)。

self.shops= [NSArray arrayWithContentsOfFile:filePath]; 這里又為什么可以用self.shops呢 ,難道不會造成死循環(huán)嗎,這里是不會的這里是賦值操作,相當于

[selfsetShops:[NSArray arrayWithContentsOfFile:filePath]];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容