【发布时间】:2017-04-29 14:55:18
【问题描述】:
我有以下Chat 的属性结构
struct Chat {
var id = String()
var gender = String()
var date = Date()
init() {}
}
在视图控制器中,我声明了一个名为 observablechat 的 Chat 实例,然后我使用 flatmap 运算符尝试并仅观察 observablechat 的 date 属性的变化。但是,如果我更改性别属性(如图所示),订阅就会被触发。我想知道为什么会这样,以及如何修复此代码,以便订阅只查看 date 属性发生的情况,而不查看其他内容?
class ViewController: UIViewController {
var observablechat = Variable(Chat())
observablechat.asObservable()
.flatMap { (Chat) -> Observable<Date> in
return Observable.of(Chat.matchDate)
}.subscribe(onNext: { (r) in
print(r)
}).addDisposableTo(disposeBag)
self.observablechat.value.gender = "male"
//triggers subscription above.
}
}
【问题讨论】:
-
你确定
id和gender默认设置为空字符串有意义吗?
标签: ios swift rxjs system.reactive rx-swift