Swift didSet 用处
didSet是Swift中的属性观察者,还有一个是willSet,这里只讨论didSet的用处,顾名思义,didSet就是属性已经被设置了,那么在实际应用用,最典型的就是传递modle(模型),改变View(视图)如:
在UITableView数据源代理方法中
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
XWWineCell *cell = [XWWineCell cellWithTablView:tableView];
cell.wine = self.wineArray[indexPath.row];
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
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 用于观察一个存储属性的值已经被改变,然后可以在里面做一些值改变后的处理