2017-02-28 74 views
2

我使用ReactiveSwift創建包含字典的結構。我想聽聽字典中的變化。MutableProperty包含字典中ReactiveSwift

struct Model { 
    let a: MutableProperty<[String: Int]> = MutableProperty([:]) 
} 

但是,我很難理解如何將此屬性綁定到偵聽器。我想做類似的事情:

textView.reactive.text <~ model.a["key"] 

是否有解決方案來保持字典在可變屬性?

回答

3

只有MutableProperty相關值(在你的情況下,字典)能夠在字典中被綁定到綁定目標,而不是一個值。這意味着你不能使用<~運營商從字典中的值。你需要做的是這樣:

model.a.producer.startWithValues { [weak textView] value in 
    textView?.text = value["key"] 
} 
+0

謝謝,這是非常有用的!最後我使我的字典裏面的性質可變的,但假設字典大小是固定的。你的答案適用於未知的情況。 – sdasdadas

0

或者你也可以做這樣的:

textView.reactive.text <~ model.a.map { $0["key"] }