笑声不断

黑马程序员-懒加载 lazy loading

懒加载:延迟加载,当程序启动时不加载资源,当程序需要这些资源时再去加载。需要的时候再加载的一种方式,能够减少内存的占用,效率高。其本质是重写get方法。

           背景:由于ios内存有限,如果我们一次性将所有资源加载完毕将极大的消耗内存,降低程序运行效率。所以就要将一些比较大的资源,如音频,数据,图片等大资源进行懒加载,就需要                                             先判断是否存在,如果不存在再创建实例化。

 1 @property (nonatomic, strong) NSArray *imageList;
 2 // 懒加载-在需要的时候,在实例化加载到内存中
 3 - (NSArray *)imageList
 4 {
 5     // 只有第一次调用getter方法时,为空,此时实例化并建立数组
 6     if (_imageList == nil) {
 7         // File表示从文件的完整路径加载文件
 8         NSString *path = [[NSBundle mainBundle] pathForResource:@"ImageData" ofType:@"plist"];
 9         NSLog(@"%@", path);
10         
11         _imageList = [NSArray arrayWithContentsOfFile:path];
12     }
13     
14     return _imageList;
15 }

 

优点:不必将所有的对象实现都放在viewdidload中。

        每个对象自己的getter方法中进行实例化,使各个对象代码彼此独立。

         只有在用到资源时采取加载节省了内存的使用。 

苹果ios系统对控制器的view的懒加载方式

RootViewController rootVC = [RootViewController alloc]init;
self.window.rootViewController = rootVC;
//视图的初始化
//视图控制器的view属于懒加载,第一次调用view的get方法是视图控制器称为window的根视图控制器,window要讲view显示出来,这个时候就要用到getter方法,先判断view是否存在,如果不存在的话,就需要创建view
-(UIView *)view {
             if (!_view){
                 [self loadView];
                 [self ViewDidLoad];
              }
     return _view;
}

 

posted on 2016-01-12 22:28  笑声不断  阅读(335)  评论(0编辑  收藏  举报

导航