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