iOS 懒加载

所谓懒加载,就是用的时候才会加载,在某些情况下可以节省资源。

- (UILabel *)nameLabel{
    if (!_nameLabel) {
        _nameLabel = [[UILabel alloc]init];
        [self.contentView addSubview: _nameLabel];

    }
    return _nameLabel;
}

必须完全按照这种格式,因为如果将括号中任意一个_nameLabel换做 self.namLabel,所谓的点语法,就相当于调这个方法,在外部调用点语法时就形成无限循环。

那么_nameLabel和self.namLabel到底区别在哪?
前者为成员变量,是由属性附加生成的成员变量,而后者则为调用属性nameLabel的点语法。
在没重写nameLabel的点语法之前两者返回的是同一个东西
例如:
当调用nameLabel的setter方法

- (void)setNameLabel:(UILabel *)nameLabel{
 _nameLabel = nameLabel;
}

再调用nameLabel的点语法self.nameLabel调用的是下面这个方法

- (UILabel *)nameLabel{
return _nameLabel;
}

而和直接调用_nameLabel是同理的。

重写之后self.nameLabel返回的是懒加载初始化后的对象,而直接调用_nameLabel则返回的是未初始化的对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值