iOS 懒加载模式
来源:互联网 发布:哪个银行的淘宝卡最好 编辑:程序博客网 时间:2024/04/28 05:44
1.概念
懒加载模式又叫懒人模式或者延迟加载,只有在需要的时候才进行加载,可用来加载控件、属性。懒加载模式的实质就是一个特殊的getter方法,特殊在在getter方法的内部包含一段用于初始化创建对象的代码逻辑,但该逻辑只会执行一次。
2.优点
因为懒加载代码逻辑只执行一次,而且是在需要的时候才会执行,不需要的时候就不执行,就提高了代码的效率,节约了系统所占用内存的资源;
使用懒加载模式可以将控件的初始化都放在getter方法中,这样可以降低viewDidLoad方法的复杂度,使得代码更加简洁,降低的代码的耦合度
3.示例代码
#import "ViewController.h"@interface ViewController () <UITableViewDataSource, UITableViewDelegate>@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // 懒加载,调用当前类的某个属性的getter方法 [self.view addSubview:self.tableView];}#pragma mark -#pragma mark - 懒加载- (UITableView*) tableView { // 需要的时候才执行,只执行一次 // 必须先判断该变量没有初始化,才进行初始化 if (!_tableView) { _tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; _tableView.delegate = self; _tableView.dataSource = self; } return _tableView;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 1;}- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellIdentifier = @"cellIdentifier"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; } cell.textLabel.text = @"item..."; return cell;}@end
4.代码分析
从以上代码示例可以看出,如果使用懒加载,将控件的初始化都放到getter方法中,viewDidLoad方法的代码量将会很少,看起来很简洁
0 0
- iOS 懒加载模式
- iOS懒加载模式
- iOS 懒加载模式
- iOS—懒加载模式
- (0020)iOS 开发之-设计模式-懒加载解惑
- iOS---tableview加载图片的时候的优化之lazy(懒加载)模式and异步加载模式
- iOS UItableview加载图片的时候的优化之lazy(懒加载)模式and异步加载模式
- iOS---tableview加载图片的时候的优化之lazy(懒加载)模式and异步加载模式
- 懒对象加载模式
- Fragment懒加载模式
- ios懒加载
- iOS 懒加载
- iOS懒加载
- IOS-懒加载
- ios 懒加载
- iOS 初始化 懒加载
- iOS懒加载问题
- iOS懒加载
- 我的男女偶像:莱昂纳多和林青霞
- Qt学习之路(35): Qt容器类之顺序存储容器
- zigbee智能家居系统转载文章
- 语文游戏项目涉及到的几个需求的解决方法
- tomcat都是按日保存日志文问分割
- iOS 懒加载模式
- Linux系统安装openssl扩展
- 线程池的简单介绍
- 双向认证第二步: p.12文件进行ssl双向认证
- 荒野之鹰
- eclipse生成的java项目中.settings的介绍
- MySQL 添加列,修改列,删除列
- 多通道图像的通道分享和合成函数-split、merge
- 16.7.11总结