oc懒加载 & swift lazy

oc的懒加载依赖于属性的双重属性的函数属性部分。

懒加载的本质是执行get函数。

swift的lazy,理论上与此类似。

编译器优化时可能对初始化块进行了保存。

懒加载的本质是延迟执行。

只要是执行,必定有调用;

只要有延迟,必然有保存。

#pragma mark - getter
 
//------- 导航栏 -------//
- (CQCategoryDetailNaviView *)naviView {
     if  (!_naviView) {
         _naviView = [[CQCategoryDetailNaviView alloc] initWithFrame:CGRectMake( 0 0 , screenWidth,  64 )];
         [self.view addSubview:_naviView];
     }
     return  _naviView;
}
 
//------- 菜单栏 -------//
- (CQCategoryDetailMenuView *)menuView {
     if  (!_menuView) {
         _menuView = [[CQCategoryDetailMenuView alloc] initWithFrame:CGRectMake( 0 64 , screenWidth,  40 )];
         [self.view addSubview:_menuView];
         _menuView.cq_delegate = self;
     }
     return  _menuView;
}
 
//------- 内容scrollView -------//
- (CQCategoryDetailScrollView *)scrollView {
     if  (!_scrollView) {
         _scrollView = [[CQCategoryDetailScrollView alloc] initWithFrame:CGRectMake( 0 104 , screenWidth, screenHeight -  104 )];
         [self.view addSubview:_scrollView];
         _scrollView.delegate = self;
     }
     return  _scrollView;
}
 
http://www.cocoachina.com/ios/20170925/20636.html

猜你喜欢

转载自www.cnblogs.com/feng9exe/p/9144925.html