几个属性的didSet块相同

时间:2014-12-22 19:23:05

标签: ios swift properties

我有一个有几个属性的类,它们作为一个组一起工作。 texttextColorfont等等......

我有一个方法,然后根据所有这三个属性呈现这个。

目前我已将它们定义为......

var text: NSString = "DEFAULT TEXT" {
    didSet {
        updateText(text, baseFont: font)
    }
}
var font: UIFont = UIFont.systemFontOfSize(1) {
    didSet {
        updateText(text, baseFont: font)
    }
}

拥有相同的代码块并不合适。 (我必须在其他参数组上再做两次。

关于我如何整理它的任何想法?

嗯......在打字的时候我一直在考虑使用结构而不是三个独立的属性。想法?

1 个答案:

答案 0 :(得分:1)

我没有看到重复updateText调用作为几个属性的didSet观察者有什么问题。这里有难闻的气味,如果有的话,在我看来updateText 宣布的方式。如果它总是使用self.textself.font,为什么不将它构建到它的定义中并且不给它任何参数?这样,你可以更整洁地写出这个:

var text: NSString = "DEFAULT TEXT" {
    didSet { updateText() }
}
var font: UIFont = UIFont.systemFontOfSize(1) {
    didSet { updateText() }
}

就我个人而言,我认为你要表达的是非常整洁(和DRYly):当任何这些属性更新时,也要更新界面。