【发布时间】:2017-04-25 21:50:59
【问题描述】:
我想知道如何执行以下操作:
var x = Observed<String>("hello")
label.text = x
x 的其他地方已更新:
x.value = "World"
然后label.text 会自动更新。到目前为止,这是我为Observed 提供的内容
class Observed<T> {
typealias Observer = (T)->()
var observer: Observer?
var value: T {
didSet {
if let observer = observer {
observer(value)
}
}
}
init(_ v: T) {
value = v
}
}
我相信这就是 RxSwift 等所做的,但这对我正在做的事情来说太过分了
【问题讨论】:
-
看Apple's Language Doc中的Property Observers@didSet会在属性改变时被调用
标签: swift generics observer-pattern