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