Swift didSet 用处

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 用于观察一个存储属性的值已经被改变,然后可以在里面做一些值改变后的处理

你可能感兴趣的:(Swift)