2017-04-25 51 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中没有“本地”数据绑定。