RxSwift 中监听对象属性改变的方式小结:rx_observe, PublishSubject 和 Variable

本文总结了在RxSwift中监听对象属性变化的三种方式:rx_observe、PublishSubject和Variable。指出rx_observe方案依赖属性字符串,存在安全隐患;PublishSubject虽然避免了硬编码,但代码显得冗余;而Variable则是作者推荐的简洁且无字符串依赖的选择。
摘要由CSDN通过智能技术生成

日常开发中,我们经常都要去观察一个对象属性的改变,那么我们怎么去监听它比较好呢?

我们的选择还是蛮多的,不过这里我们仅讨论 RxSwift 世界中的方案。

rx_observe

我们首先就会发现 rx_observe 这个方法,然后写出类似下面的代码:

 viewModel
    .rx_observe(Int.self, "intVar")
    .subscribeNext { [weak self] (value) in

    }
    .addDisposableTo(disposeBag)

我是很不喜欢这个方案的,因为它严重依赖属性名字的字符串,这是很不安全的做法,比较容易写错,变量更名的时候也很头疼。如果不是监听我们不能改变的代码,建议不要用这个方案。

PublishSubject

如果您也用过 ReactiveCocoa,桥接过非 RAC 世界的东西到 RAC 世界,那么您一定知道 Su

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值