懒加载是只有在调用的时候才会初始化,防止资源浪费。
1.重写对象的get方法,且必须写成成员变量的形式,即_hero的形式,这里主要是成员变量_hero与self.hero方法的区别,self会调用get方法,程序会陷入死循环
2.一定要判断是否为空,否则就会每调一次就初始化一次,失去了意义。
3.在需要使用get方法加载数据的时候,一定要使用self.hero调用,原因跟上面的一样,_hero是不会调用get方法的。
- (NSArray *)heros
{
NSLog(@"wojaofjj");
if (_heros == nil) {
NSString *path = [[NSBundle mainBundle] pathForResource:@"heros" ofType:@"plist"];
NSArray *arrayDic =[NSArray arrayWithContentsOfFile:path];
NSLog(@"bb:%@",arrayDic);
NSMutableArray *array = [NSMutableArray array];
for (NSDictionary *dic in arrayDic) {
GRRHero *hero = [GRRHero heroWithDic:dic];
[array addObject:hero];
}
_heros = array;
}
return _heros;
}