簡體   English   中英

如何在 Swift 中更新作業?

[英]How can I update an assignment in Swift?

我想知道如何執行以下操作:

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 等所做的,但這對我正在做的事情來說太過分了

在這種情況下,您可能應該只使用didSet

class YourClass {
   var x: String = "" { didSet {  someVC.someLabel.text = x } }
}

到目前為止,iOS 中沒有“本機”數據綁定。

編輯:當然有 KVO,感謝@matt 的提醒:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM