Swift didSet 用处

本文介绍Swift中的属性观察者didSet的使用方法,并通过一个UITableView的例子展示了如何利用didSet来更新UI视图,使得数据和视图保持同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Swift didSet 用处

didSet是Swift中的属性观察者,还有一个是willSet,这里只讨论didSet的用处,顾名思义,didSet就是属性已经被设置了,那么在实际应用用,最典型的就是传递modle(模型),改变View(视图)如:
在UITableView数据源代理方法中
  • Objective-C
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //1.获取自定义的cell
    XWWineCell *cell = [XWWineCell cellWithTablView:tableView];
    //2.传递模型给cell
    cell.wine = self.wineArray[indexPath.row];
    //3.传递数据源
    return cell;
    }
在XWWineCell 中模型被设置后调用的setWine方法
- (void)setWine:(XWWine *)wine
{
    //1.赋值
    _wine = wine;
    //2.改变视图显示的数据
    self.iconImageView.image = [UIImage imageNamed:wine.image];
    self.nameLabel.text = wine.name;
    self.moneyLabel.text = wine.money;
    self.shopCountLable.text = [NSString stringWithFormat:@"%d", wine.count];
    self.minusButton.enabled = (wine.count > 0);
}
换成Swift
  • Swift
var wine:XWWine! {
        //这个方法中,已经对wine存储属性赋值
        didSet{
            self.iconImageView.image = UIImage(named: wine.image)
            self.nameLabel.text = wine.name
            self.moneyLabel.text = wine.money
            self.minusButton.enabled = wine.count > 0
            self.shopCountLable.text = String(wine.count)
        }
    }

简而言之 didSet 用于观察一个存储属性的值已经被改变,然后可以在里面做一些值改变后的处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值