2

我正在使用 ReactiveSwift 创建一个包含字典的结构。我想听字典的变化。

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

但是,我很难理解如何将此属性绑定到侦听器。我想做类似的事情:

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

有没有办法将字典保存在可变属性中?

4

2 回答 2

3

只有 MutableProperty 关联值(在您的情况下为字典)能够绑定到绑定目标,而不是字典中的值。这意味着您不能<~对字典中的值使用运算符。您需要执行以下操作:

model.a.producer.startWithValues { [weak textView] value in
     textView?.text = value["key"]
}
于 2017-03-01T02:16:08.307 回答
1

或者你可以这样做:

textView.reactive.text <~ model.a.map { $0["key"] }
于 2017-03-30T09:31:17.000 回答