2017-04-25 44 views
0

我想知道我怎麼能做到以下幾點:如何更新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等你,但是這是矯枉過正,我做什麼

+0

查看[Apple的語言文檔]中的屬性觀察者(https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html#//apple_ref/doc/uid/TP40014097- CH14-ID254)didSet將在屬性調用時調用 – Mark

回答

0

你或許應該只使用在didSet這種情況。

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

截至目前iOS中沒有「本地」數據綁定。