[英]How can I update an assignment in Swift?
I want to know how I can do the following:我想知道如何执行以下操作:
var x = Observed<String>("hello")
label.text = x
Somewhere else x
is updated:其他地方
x
更新:
x.value = "World"
Then label.text
is automatically updated.然后
label.text
自动更新。 Here is what I have for Observed
so far这是我目前
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
}
}
I believe this is sort of what RxSwift, etc. do, but that's overkill for what I'm doing我相信这就是 RxSwift 等所做的,但这对我正在做的事情来说太过分了
You should probably just use a didSet
in this scenario.在这种情况下,您可能应该只使用
didSet
。
class YourClass {
var x: String = "" { didSet { someVC.someLabel.text = x } }
}
There is no "native" data binding in iOS as of now.到目前为止,iOS 中没有“本机”数据绑定。
EDIT: of course there is KVO, thanks @matt for the heads-up :)编辑:当然有 KVO,感谢@matt 的提醒:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.