项目中有时候有些数据,特别是数据比较多的时候,这时候可以不要写在viewdidload中
可以用懒加载加载数据,懒加载是在用到的时候加载,并且只加载一次。这样就不需要在进入界面的时候不加载很多内容在内存中,加载比较快,省内存。也就是想用的时候才去创建,不用的时候不创建。
本质就是重写get方法。
-(NSArray*)shops
{
if(_shops==nil) {
//加载plist数据
NSString*filePath = [[NSBundle mainBundle]pathForResource:@"shops"ofType:@"plist"];
self.shops= [NSArray arrayWithContentsOfFile:filePath];
}
return_shops;
}
_xxx 跟self.xxx 有不少,一个很重要的是self.xxx会调用set方法_xxx只是访问属性变量,不会去调用set方法。
所以注意这里!!!! 这里_shops 不能换成self.shops 否则出现死循环,因为这里self.shops
的话就是又去调用get方法 造成死循环,懒加载好用,但是一定要注意别写错了,小细节。
self.shops= [NSArray arrayWithContentsOfFile:filePath]; 这里又为什么可以用self.shops呢 ,难道不会造成死循环吗,这里是不会的这里是赋值操作,相当于
[selfsetShops:[NSArray arrayWithContentsOfFile:filePath]];