2017-04-25 10 views
0

私は次の操作を行うことができる方法を知りたい:Swiftで課題を更新するにはどうすればよいですか?

var x = Observed<String>("hello") 
label.text = x 

どこかxが更新されます。そして、

x.value = "World" 

label.textは自動的に更新されます。ここで行うなど、私はこれは何RxSwiftの一種であると信じて、これまで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 
    } 
} 

ですが、それは、私はあなたがおそらくちょうどでdidSetを使用する必要があります

+0

[Apple's Language Doc]のプロパティオブザーバーをご覧ください(https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html#//apple_ref/doc/uid/TP40014097- CH14-ID254)didSetは、プロパティchnages – Mark

答えて

0

をやっている何のためにやり過ぎだこのシナリオ。

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

現在、iOSでは「ネイティブ」データバインディングはありません。

関連する問題