懒加载
* viewDidLoad当控制器的View加载完毕,才会调用ViewDidLoad
如果plist文件太大,且没有用到,但在ViewDidLoad中加载,非常浪费内存(大的plist文件在ViewDidLoad中);
懒加载:用到时候,再去加载,而且也只加载一次
懒加载就是重写get方法
@property (nonatomic,retain)NSMutableArray *shops;
- (NSMutableArray *)shops{//get方法
// if ([self shops] == nil)这么写是不对的,self调用shops方法,一直循环在调,没往下走
if (_shops ==nil) {
NSString *file = [[NSBundlemainBundle]pathForResource:@"aa"ofType:@"plist"];
//将右边的赋值给左边
self.shops = [NSMutableArrayarrayWithContentsOfFile:file];
//或者可以这样写
// [selfsetShops:[NSMutableArrayarrayWithContentsOfFile:file]];
//_shops = [NSMutableArray arrayWithContentsOfFile:file];
}
//return self.shops;// 这样写是不对的。一直在调set方法。一直在循环
return _shops;
//只有点击了,用到它才会调数据
}
- (void)viewDidLoad {
[superviewDidLoad];
eg:
NSDictionary *shaop = [self shops][index];//shop是数组
// self.name = @"123";
// NSString *abc = self.name;
// //拿数据get
// NSString *abc = [self name];
// 所以用数据用get方法
}