項目中有時候有些數(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]];