【iOS】—— 懒加载

懒加载

首先,要明白懒加载的概念,懒加载的实质就是延迟加载,iOS设备在加载时有限度,如果我们的数据很大,一次性将其全部加载出来可能对内存的损耗比较大,懒加载的作用就是将其在需要的时候再加载出来。

  • 懒加载的实质就是重写getter方法

如果我们在UI视图中添加一个新的label,要怎么做,按原本的作法:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    _label = [[UILabel alloc] init];
    _label.text = @"iOS";
    _label.frame = CGRectMake(100, 100, 100, 100);
    [self.view addSubview:_label];
}

在该视图的viewDidLoad方法里直接将其实现即可。

如果利用懒加载的话,就要在视图的.m文件里进行重写方法:

- (UILabel *)Label {
    if (!_label) {
        _label = [[UILabel alloc] init];
        _label.text = @"iOS";
        _label.frame = CGRectMake(100, 100, 100, 100);
        [self.view addSubview:_label];
    }
    return _label;
}

在viewDidLoad里进行调用:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self Label];
}

注意:

在懒加载的方法重写过程中_label不要写成self.label,在重写之前,两者所调用的对象是相同的,但是在重写之后,self.label返回的是懒加载初始化之后的对象,_label返回的是初始化之前的对象。

懒加载的优点:

  • 懒加载节省内存资源,只有在需要用加载它时,才会进行调用懒加载
  • 懒加载可以防止实例为nil,在重写的过程中首先会盘空
  • 懒加载可以将主要代码不写在viewDidLoad里,使代码更加模式化,增加代码可读性

懒加载缺点:

  • 懒加载在增加代码可读性的同时,使代码量变多
  • 在使用懒加载时在self.label和_label的使用中容易出错造成循环引用,从而造成崩溃
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值