给大家讲懒加载的方法
所谓的懒加载可以定义为:延时加载,即当对象需要用到的时候再去加载。其实就是所谓的重写对象的get方法,当系统或者开发者调用对象的get方法时,再去加载对象。
懒加载的优点
不需将对象的实例化写到viewDidLoad,可以简化代码,增强代码的可读性
对象的实例化在getter方法中,各司其职,降低耦合性
对系统的内存占用率会减小
viewDidLoad正常加载代码示例
没用懒加载的时候,从plist获取数据,返回一个数组,需要写在viewDidLoad方法中获取
@interfaceViewController()
@property(nonatomic,strong)NSArray*shopData;
@end
@implementationViewController
-(void)viewDidLoad {
[superviewDidLoad]; _shopData = [NSArrayarrayWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"shop"ofType:@"plist"]];
}
@end
显而易见,当控制器被加载完成后就会加载当前的shopData,假如shopData是在某些事件被触发的时候才会被调用,没必要在控制器加载完就去获取plist文件,如果事件不被触发,代表着shopData永远不会被用到,这样在viewDidLoad中加载shopData就会十分多余,并且耗用内存
- (void)viewDidLoad {
[superviewDidLoad];
}
- (NSArray *)shopData{
if(!_shopData) {
_shopData = [NSArrayarrayWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"shop"ofType:@"plist"]];
}
return_shopData;
}
@end